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

Method trigger

opcua/server/event_generator.py:84–109  ·  view source on GitHub ↗

Trigger the event. This will send a notification to all subscribed clients

(self, time_attr=None, message=None)

Source from the content-addressed store, hash-verified

82 __repr__ = __str__
83
84 def trigger(self, time_attr=None, message=None):
85 """
86 Trigger the event. This will send a notification to all subscribed clients
87 """
88 self.event.EventId = ua.Variant(uuid.uuid4().hex.encode('utf-8'), ua.VariantType.ByteString)
89 if time_attr:
90 self.event.Time = time_attr
91 else:
92 self.event.Time = datetime.utcnow()
93 self.event.ReceiveTime = datetime.utcnow()
94
95 self.event.LocalTime = ua.uaprotocol_auto.TimeZoneDataType()
96 if sys.version_info.major > 2:
97 localtime = time.localtime(self.event.Time.timestamp())
98 self.event.LocalTime.Offset = localtime.tm_gmtoff//60
99 else:
100 localtime = time.localtime(time.mktime(self.event.Time.timetuple()))
101 self.event.LocalTime.Offset = -(time.altzone if localtime.tm_isdst else time.timezone)
102 self.event.LocalTime.DaylightSavingInOffset = bool(localtime.tm_isdst != -1)
103
104 if message:
105 self.event.Message = ua.LocalizedText(message)
106 elif not self.event.Message:
107 self.event.Message = ua.LocalizedText(Node(self.isession, self.event.SourceNode).get_browse_name().Text)
108
109 self.isession.subscription_service.trigger_event(self.event)

Calls 3

NodeClass · 0.90
get_browse_nameMethod · 0.80
trigger_eventMethod · 0.45