|
@@ 107-128 (lines=22) @@
|
| 104 |
|
if node is None: |
| 105 |
|
return |
| 106 |
|
if node in self._subscribed_nodes: |
| 107 |
|
logger.info("allready subscribed to event for node: %s", node) |
| 108 |
|
return |
| 109 |
|
logger.info("Subscribing to events for %s", node) |
| 110 |
|
self.window.ui.evDockWidget.raise_() |
| 111 |
|
try: |
| 112 |
|
self.uaclient.subscribe_events(node, self._handler) |
| 113 |
|
except Exception as ex: |
| 114 |
|
self.window.show_error(ex) |
| 115 |
|
raise |
| 116 |
|
else: |
| 117 |
|
self._subscribed_nodes.append(node) |
| 118 |
|
|
| 119 |
|
@trycatchslot |
| 120 |
|
def _unsubscribe(self): |
| 121 |
|
node = self.window.get_current_node() |
| 122 |
|
if node is None: |
| 123 |
|
return |
| 124 |
|
self._subscribed_nodes.remove(node) |
| 125 |
|
self.uaclient.unsubscribe_events(node) |
| 126 |
|
|
| 127 |
|
@trycatchslot |
| 128 |
|
def _update_event_model(self, event): |
| 129 |
|
self.model.appendRow([QStandardItem(str(event))]) |
| 130 |
|
|
| 131 |
|
|
|
@@ 43-59 (lines=17) @@
|
| 40 |
|
|
| 41 |
|
logger = logging.getLogger(__name__) |
| 42 |
|
|
| 43 |
|
|
| 44 |
|
class DataChangeHandler(QObject): |
| 45 |
|
data_change_fired = pyqtSignal(object, str, str) |
| 46 |
|
|
| 47 |
|
def datachange_notification(self, node, val, data): |
| 48 |
|
if data.monitored_item.Value.SourceTimestamp: |
| 49 |
|
dato = data.monitored_item.Value.SourceTimestamp.isoformat() |
| 50 |
|
elif data.monitored_item.Value.ServerTimestamp: |
| 51 |
|
dato = data.monitored_item.Value.ServerTimestamp.isoformat() |
| 52 |
|
else: |
| 53 |
|
dato = datetime.now().isoformat() |
| 54 |
|
self.data_change_fired.emit(node, str(val), dato) |
| 55 |
|
|
| 56 |
|
|
| 57 |
|
class EventHandler(QObject): |
| 58 |
|
event_fired = pyqtSignal(object) |
| 59 |
|
|
| 60 |
|
def event_notification(self, event): |
| 61 |
|
self.event_fired.emit(event) |
| 62 |
|
|