Commit 6c33879b authored by Denis Štogl's avatar Denis Štogl

Add types correctly and start implementation for adding reference GeneratesEvent

parent 751d0512
......@@ -59,6 +59,15 @@ class EventGenerator(object):
self.event.SourceName = source.get_display_name().Text
source.set_attribute(ua.AttributeIds.EventNotifier, ua.DataValue(ua.Variant(1, ua.VariantType.Byte)))
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = True
ref.ReferenceTypeId = ua.ObjectIds.GeneratesEvent
ref.SourceNodeId = source
ref.TargetNodeClass = ua.NodeClass.ObjectType
ref.TargetNodeId = self.event.EventType
refs.append(ref)
self.isession.add_references(refs)
def __str__(self):
return "EventGenerator(Type:{}, Source:{}, Time:{}, Message: {})".format(self.EventType, self.SourceNode, self.Time, self.Message)
......
......@@ -108,21 +108,26 @@ def _create_object(server, parentnodeid, nodeid, qname, objecttype):
addnode = ua.AddNodesItem()
addnode.RequestedNewNodeId = nodeid
addnode.BrowseName = qname
addnode.NodeClass = ua.NodeClass.Object
addnode.ParentNodeId = parentnodeid
#TODO: maybe move to address_space.py and implement for all node types?
if not objecttype:
addnode.ReferenceTypeId = ua.NodeId(ua.ObjectIds.HasSubtype)
addnode.NodeClass = ua.NodeClass.ObjectType
attrs = ua.ObjectTypeAttributes()
attrs.IsAbstract = True
else:
addnode.TypeDefinition = ua.NodeId(objecttype)
if node.Node(server, parentnodeid).get_type_definition() == ua.ObjectIds.FolderType:
addnode.ReferenceTypeId = ua.NodeId(ua.ObjectIds.Organizes)
else:
addnode.ReferenceTypeId = ua.NodeId(ua.ObjectIds.HasComponent)
attrs = ua.ObjectAttributes()
addnode.NodeClass = ua.NodeClass.Object
addnode.TypeDefinition = ua.NodeId(objecttype)
attrs = ua.ObjectAttributes()
attrs.EventNotifier = 0
attrs.Description = ua.LocalizedText(qname.Name)
attrs.DisplayName = ua.LocalizedText(qname.Name)
attrs.EventNotifier = 0
attrs.WriteMask = 0
attrs.UserWriteMask = 0
addnode.NodeAttributes = attrs
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment