MCPcopy Create free account
hub / github.com/FreeOpcUa/python-opcua / __init__

Method __init__

opcua/server/event_generator.py:29–75  ·  view source on GitHub ↗
(self, isession, etype=None, emitting_node=ua.ObjectIds.Server)

Source from the content-addressed store, hash-verified

27 """
28
29 def __init__(self, isession, etype=None, emitting_node=ua.ObjectIds.Server):
30 if not etype:
31 etype = event_objects.BaseEvent()
32
33 self.logger = logging.getLogger(__name__)
34 self.isession = isession
35 self.event = None
36 node = None
37
38 if isinstance(etype, event_objects.BaseEvent):
39 self.event = etype
40 elif isinstance(etype, Node):
41 node = etype
42 elif isinstance(etype, ua.NodeId):
43 node = Node(self.isession, etype)
44 else:
45 node = Node(self.isession, ua.NodeId(etype))
46
47 if node:
48 self.event = events.get_event_obj_from_type_node(node)
49
50 if isinstance(emitting_node, Node):
51 pass
52 elif isinstance(emitting_node, ua.NodeId):
53 emitting_node = Node(isession, emitting_node)
54 else:
55 emitting_node = Node(isession, ua.NodeId(emitting_node))
56
57 self.event.emitting_node = emitting_node.nodeid
58
59 if not self.event.SourceNode:
60 self.event.SourceNode = emitting_node.nodeid
61 self.event.SourceName = emitting_node.get_browse_name().Name
62
63 emitting_node.set_event_notifier([ua.EventNotifier.SubscribeToEvents])
64 refs = []
65 ref = ua.AddReferencesItem()
66 ref.IsForward = True
67 ref.ReferenceTypeId = ua.NodeId(ua.ObjectIds.GeneratesEvent)
68 ref.SourceNodeId = emitting_node.nodeid
69 ref.TargetNodeClass = ua.NodeClass.ObjectType
70 ref.TargetNodeId = self.event.EventType
71 refs.append(ref)
72 results = self.isession.add_references(refs)
73 # result.StatusCode.check()
74
75 self.emitting_node = emitting_node
76
77 def __str__(self):
78 return "EventGenerator(Type:{0}, Emitting Node:{1}, Time:{2}, Message: {3})".format(self.event.EventType,

Callers

nothing calls this directly

Calls 4

get_browse_nameMethod · 0.95
set_event_notifierMethod · 0.95
NodeClass · 0.90
add_referencesMethod · 0.45

Tested by

no test coverage detected