diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..86d4c2d --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +generated diff --git a/templates/designToConfigParser.jinja b/templates/designToConfigParser.jinja index b24d2a9..ca98c06 100644 --- a/templates/designToConfigParser.jinja +++ b/templates/designToConfigParser.jinja @@ -118,6 +118,29 @@ bool {{functionPrefix}}configure{{class_name}} ( {% endif %} } + string fullName = prefix+name; + bool success = {{functionPrefix}}configureFromName{{class_name}}(name, prefix, createDps, assignAddresses, continueOnError, addressActiveControl, connectionSettings); + + dyn_int children; + {% for ho in designInspector.objectify_has_objects(class_name, "[@instantiateUsing='configuration']") %} + children = {{functionPrefix}}getChildNodesWithName(docNum, childNode, "{{ho.get('class')}}"); + for (int i=1; i<=dynlen(children); i++) + {{functionPrefix}}configure{{ho.get('class')}} (docNum, children[i], fullName+"/", createDps, assignAddresses, continueOnError, addressActiveControl, connectionSettings); + {% endfor %} + + return success; +} + +bool {{functionPrefix}}configureFromName{{class_name}} ( + string name, + string prefix, + bool createDps, + bool assignAddresses, + bool continueOnError, + mapping addressActiveControl, + mapping connectionSettings) +{ + DebugTN("Configure.{{class_name}} called without XML"); string fullName = prefix+name; string dpt = "{{typePrefix}}{{class_name}}"; @@ -197,13 +220,12 @@ bool {{functionPrefix}}configure{{class_name}} ( } } - dyn_int children; - {% for ho in designInspector.objectify_has_objects(class_name, "[@instantiateUsing='configuration']") %} - children = {{functionPrefix}}getChildNodesWithName(docNum, childNode, "{{ho.get('class')}}"); - for (int i=1; i<=dynlen(children); i++) - {{functionPrefix}}configure{{ho.get('class')}} (docNum, children[i], fullName+"/", createDps, assignAddresses, continueOnError, addressActiveControl, connectionSettings); + // Parse children instantiated from design + {% for ho in designInspector.objectify_has_objects(class_name, "[@instantiateUsing='design']")%} + {% for obj in ho.object %} + {{functionPrefix}}configureFromName{{ho.get('class')}}("{{obj.get('name')}}", fullName+"/", createDps, assignAddresses, continueOnError, addressActiveControl, connectionSettings); + {% endfor %} {% endfor %} - } {% endfor %}