Go to the documentation of this file.00001 import sys
00002 sys.path.insert(0, "..")
00003 import logging
00004 from datetime import datetime
00005
00006 try:
00007 from IPython import embed
00008 except ImportError:
00009 import code
00010
00011 def embed():
00012 vars = globals()
00013 vars.update(locals())
00014 shell = code.InteractiveConsole(vars)
00015 shell.interact()
00016
00017
00018 from opcua import ua, uamethod, Server
00019 from opcua.common.callback import CallbackType
00020
00021
00022
00023 def create_monitored_items(event, dispatcher):
00024 print("Monitored Item")
00025
00026 for idx in range(len(event.response_params)) :
00027 if (event.response_params[idx].StatusCode.is_good()) :
00028 nodeId = event.request_params.ItemsToCreate[idx].ItemToMonitor.NodeId
00029 print("Node {0} was created".format(nodeId))
00030
00031
00032 def modify_monitored_items(event, dispatcher):
00033 print('modify_monitored_items')
00034
00035
00036 def delete_monitored_items(event, dispatcher):
00037 print('delete_monitored_items')
00038
00039
00040 if __name__ == "__main__":
00041
00042 logging.basicConfig(level=logging.WARN)
00043
00044
00045
00046
00047
00048
00049
00050
00051 logger = logging.getLogger("opcua.subscription_service")
00052 logger.setLevel(logging.DEBUG)
00053
00054
00055 server = Server()
00056
00057
00058 server.set_endpoint("opc.tcp://0.0.0.0:4840/freeopcua/server/")
00059 server.set_server_name("FreeOpcUa Example Server")
00060
00061
00062 uri = "http://examples.freeopcua.github.io"
00063 idx = server.register_namespace(uri)
00064
00065
00066 objects = server.get_objects_node()
00067
00068
00069 myfolder = objects.add_folder(idx, "myEmptyFolder")
00070 myobj = objects.add_object(idx, "MyObject")
00071 myvar = myobj.add_variable(idx, "MyVariable", 6.7)
00072 myvar.set_writable()
00073
00074
00075
00076 server.start()
00077
00078
00079 server.subscribe_server_callback(CallbackType.ItemSubscriptionCreated, create_monitored_items)
00080 server.subscribe_server_callback(CallbackType.ItemSubscriptionModified, modify_monitored_items)
00081 server.subscribe_server_callback(CallbackType.ItemSubscriptionDeleted, delete_monitored_items)
00082
00083
00084 print("Available loggers are: ", logging.Logger.manager.loggerDict.keys())
00085 try:
00086
00087 embed()
00088 finally:
00089 server.stop()