Я только начал использовать freeopcua и в настоящее время работаю над клиентом, который должен что-то делать (например, печатать строку), когда определенный узел на сервере меняет свое значение. По-видимому, существует класс подписки , который должен обрабатывать подобные вещи. Но я просто не понимаю, как это работает ... После подписки, насколько я понимаю, события передаются в SubHandler, но как я могу получить к ним доступ? Как я могу, например, получить доступ к значению, которое изменилось в следующем коде?
from opcua import Client
class SubHandler(object):
def datachange_notification(self, node, val, data):
print("Python: New data change event", node, val)
def event_notification(self, event):
print("Python: New event", event)
if __name__ == "__main__":
client = Client(some_url)
try:
client.connect()
obj = client.get_node(some_nodeID)
handler = SubHandler()
sub = client.create_subscription(500, handler)
handle = sub.subscribe_data_change(obj)
finally:
client.disconnect()