2 sys.path.insert(0,
"..")
4 from datetime
import datetime
6 from opcua
import ua, Server
10 if __name__ ==
"__main__":
14 server.set_endpoint(
"opc.tcp://0.0.0.0:4840/freeopcua/server/")
17 uri =
"http://examples.freeopcua.github.io" 18 idx = server.register_namespace(uri)
21 objects = server.get_objects_node()
24 myobj = objects.add_object(idx,
"MyObject")
28 etype = server.create_custom_event_type(2,
'MyFirstEvent', ua.ObjectIds.BaseEventType,
29 [(
'MyNumericProperty', ua.VariantType.Float),
30 (
'MyStringProperty', ua.VariantType.String)])
32 etype2 = server.create_custom_event_type(2,
'MySecondEvent', ua.ObjectIds.BaseEventType,
33 [(
'MyOtherProperty', ua.VariantType.Float)])
36 myevgen = server.get_event_generator(etype, myobj)
37 myevgen.event.Severity = 500
38 myevgen.event.MyStringProperty = ua.Variant(
"hello world")
39 myevgen.event.MyNumericProperty = ua.Variant(-456)
42 myevgen2 = server.get_event_generator(etype2, myobj)
43 myevgen2.event.Severity = 123
44 myevgen2.event.MyOtherProperty = ua.Variant(1.337)
47 serverevgen = server.get_event_generator()
48 serverevgen.event.Severity = 111
51 server.iserver.history_manager.set_storage(
HistorySQLite(
"my_event_history.sql"))
57 server.iserver.enable_history_event(myobj, period=
None)
60 server_node = server.get_node(ua.ObjectIds.Server)
61 server.historize_node_event(server_node, period=
None)
70 myevgen.trigger(message=
"This is MyFirstEvent " + str(count))
71 myevgen2.trigger(message=
"This is MySecondEvent " + str(count))
72 serverevgen.trigger(message=
"Server Event Message")
75 end_time = datetime.utcnow()
76 server_event_history = server_node.read_event_history(
None, end_time, 0)