|
@@ 207-218 (lines=12) @@
|
| 204 |
|
if obj.value is not None: |
| 205 |
|
attrs.Value = self._add_variable_value(obj,) |
| 206 |
|
if obj.rank: |
| 207 |
|
attrs.ValueRank = obj.rank |
| 208 |
|
if obj.accesslevel: |
| 209 |
|
attrs.AccessLevel = obj.accesslevel |
| 210 |
|
if obj.useraccesslevel: |
| 211 |
|
attrs.UserAccessLevel = obj.useraccesslevel |
| 212 |
|
if obj.minsample: |
| 213 |
|
attrs.MinimumSamplingInterval = obj.minsample |
| 214 |
|
if obj.dimensions: |
| 215 |
|
attrs.ArrayDimensions = obj.dimensions |
| 216 |
|
node.NodeAttributes = attrs |
| 217 |
|
res = self.server.add_nodes([node]) |
| 218 |
|
self._add_refs(obj) |
| 219 |
|
return res[0].AddedNodeId |
| 220 |
|
|
| 221 |
|
def _make_ext_obj(sefl, obj): |
|
@@ 85-95 (lines=11) @@
|
| 82 |
|
for nodedata in nodes_parsed: # self.parser: |
| 83 |
|
if nodedata.nodetype == 'UAObject': |
| 84 |
|
node = self.add_object(nodedata) |
| 85 |
|
elif nodedata.nodetype == 'UAObjectType': |
| 86 |
|
node = self.add_object_type(nodedata) |
| 87 |
|
elif nodedata.nodetype == 'UAVariable': |
| 88 |
|
node = self.add_variable(nodedata) |
| 89 |
|
elif nodedata.nodetype == 'UAVariableType': |
| 90 |
|
node = self.add_variable_type(nodedata) |
| 91 |
|
elif nodedata.nodetype == 'UAReferenceType': |
| 92 |
|
node = self.add_reference_type(nodedata) |
| 93 |
|
elif nodedata.nodetype == 'UADataType': |
| 94 |
|
node = self.add_datatype(nodedata) |
| 95 |
|
elif nodedata.nodetype == 'UAMethod': |
| 96 |
|
node = self.add_method(nodedata) |
| 97 |
|
else: |
| 98 |
|
self.logger.warning("Not implemented node type: %s ", nodedata.nodetype) |
|
@@ 73-83 (lines=11) @@
|
| 70 |
|
self.logger.info("Importing XML file %s", xmlpath) |
| 71 |
|
self.parser = xmlparser.XMLParser(xmlpath, act_server) |
| 72 |
|
|
| 73 |
|
self.namespaces = self._map_namespaces(self.parser.get_used_namespaces(), act_server) |
| 74 |
|
self.aliases = self._map_aliases(self.parser.get_aliases()) |
| 75 |
|
|
| 76 |
|
# The ordering of nodes currently only works if namespaces are |
| 77 |
|
# defined in XML. |
| 78 |
|
# Also, it is recommended not to use node ids without namespace prefix! |
| 79 |
|
nodes_parsed = self._sort_nodes_by_parentid(self.parser) |
| 80 |
|
|
| 81 |
|
nodes = [] |
| 82 |
|
for nodedata in nodes_parsed: # self.parser: |
| 83 |
|
if nodedata.nodetype == 'UAObject': |
| 84 |
|
node = self.add_object(nodedata) |
| 85 |
|
elif nodedata.nodetype == 'UAObjectType': |
| 86 |
|
node = self.add_object_type(nodedata) |