Trigger the event. This will send a notification to all subscribed clients
(self, time_attr=None, message=None)
| 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) |