| @@ 315-324 (lines=10) @@ | ||
| 312 | # server_handle is left as None in purpose as we don't get it yet. | |
| 313 | with self._lock: | |
| 314 | for mi in monitored_items: | |
| 315 | data = SubscriptionItemData() | |
| 316 | data.client_handle = mi.RequestedParameters.ClientHandle | |
| 317 | data.node = Node(self.server, mi.ItemToMonitor.NodeId) | |
| 318 | data.attribute = mi.ItemToMonitor.AttributeId | |
| 319 | data.mfilter = mi.RequestedParameters.Filter | |
| 320 | self._monitoreditems_map[mi.RequestedParameters.ClientHandle] = data | |
| 321 | results = self.server.create_monitored_items(params) | |
| 322 | mids = [] | |
| 323 | # process result, add server_handle, or remove it if failed | |
| 324 | with self._lock: | |
| 325 | for idx, result in enumerate(results): | |
| 326 | mi = params.ItemsToCreate[idx] | |
| 327 | if not result.StatusCode.is_good(): | |
| @@ 111-117 (lines=7) @@ | ||
| 108 | ||
| 109 | def __init__(self): | |
| 110 | super(CustomEvent, self).__init__(extended=True) | |
| 111 | self.EventType = node.nodeid | |
| 112 | curr_node = node | |
| 113 | ||
| 114 | while curr_node.nodeid.Identifier != parent_identifier: | |
| 115 | for prop in curr_node.get_properties(): | |
| 116 | setattr(self, prop.get_browse_name().Name, prop.get_value()) | |
| 117 | parents = curr_node.get_referenced_nodes(refs=ua.ObjectIds.HasSubtype, direction=ua.BrowseDirection.Inverse, includesubtypes=False) | |
| 118 | if len(parents) != 1: # Something went wrong | |
| 119 | return None | |
| 120 | curr_node = parents[0] | |