Ниже приведен код сервера:
Код: Выделить всё
uri = "http://examples.freeopcua.github.io"
idx = await server.register_namespace(uri)
objects_node = server.nodes.objects
my_object = await objects_node.add_object(idx, "MyObject")
node_ids = []
evtype = server.get_node("ns=0;i=2133")
myevgen = await server.get_event_generator(evtype,my_object)
async with server:
for i in range(5):
node = await my_object.add_variable(idx, f"Node{i+1}", 0)
node_ids.append(node.nodeid)
await node.set_writable()
print(f"Added node: {node}")
await myevgen.trigger()
await asyncio.sleep(10)
node_to_remove = random.choice(node_ids)
node_ids.remove(node_to_remove)
server.delete_nodes([node_to_remove])
await myevgen.trigger()
print(f"Removed node: {node_to_remove}")
while True:
await asyncio.sleep(0.1)
Уведомление о событии: Event(['Changes:None', "EventId:b'c65319e5b1c44a1e8dbf3d193d65d254'", 'EventType:NodeId (Идентификатор=2133, Индекс пространства имен=0, NodeIdType=)', 'SourceNode:NodeId(Identifier=1, NamespaceIndex=2, NodeIdType=)', 'SourceName:MyObject', 'Time:2024-12- 02 04:23:24.019891+00:00', 'ReceiveTime:2024-12-02 04:23:24.019891+00:00', 'LocalTime:TimeZoneDataType(Offset=330, DaylightSavingInOffset=True)', 'Message:LocalizedText( Локаль=Нет, Text=None)', 'Серьезность:1'])
Подробнее здесь: https://stackoverflow.com/questions/792 ... nge-events
Мобильная версия