def datachange_callback(self, handle, value, error=None): if error: self.logger.info( "subscription %s: datachange callback called with handle '%s' and erorr '%s'", self, handle, error) self.trigger_statuschange(error) else: self.logger.info( "subscription %s: datachange callback called with handle '%s' and value '%s'", self, handle, value.Value) event = ua.MonitoredItemNotification() with self._lock: mid = self._monitored_datachange[handle] mdata = self._monitored_items[mid] mdata.mvalue.set_current_value(value.Value.Value) if mdata.filter: deadband_flag_pass = self.deadband_callback( mdata.mvalue, mdata.filter) else: deadband_flag_pass = True if deadband_flag_pass: event.ClientHandle = mdata.client_handle event.Value = value self.isub.enqueue_datachange_event(mid, event, mdata.queue_size)
def datachange_callback(self, handle, value): self.logger.info("subscription %s: datachange callback called with handle '%s' and value '%s'", self, handle, value.Value) event = ua.MonitoredItemNotification() with self._lock: mid = self._monitored_datachange[handle] mdata = self._monitored_items[mid] event.ClientHandle = mdata.client_handle event.Value = value self.isub.enqueue_datachange_event(mid, event, mdata.parameters.RevisedQueueSize)