mirror of
				https://github.com/FreeOpcUa/opcua-asyncio
				synced 2025-10-29 17:07:18 +08:00 
			
		
		
		
	Update server-callback.py
This commit is contained in:
		| @@ -2,6 +2,7 @@ import sys | ||||
| sys.path.insert(0, "..") | ||||
| import logging | ||||
| from datetime import datetime | ||||
| import asyncio | ||||
|  | ||||
| try: | ||||
|     from IPython import embed | ||||
| @@ -37,7 +38,7 @@ def delete_monitored_items(event, dispatcher): | ||||
|     print('delete_monitored_items') | ||||
|  | ||||
|  | ||||
| if __name__ == "__main__": | ||||
| async def main(): | ||||
|     # optional: setup logging | ||||
|     logging.basicConfig(level=logging.WARN) | ||||
|     #logger = logging.getLogger("asyncua.address_space") | ||||
| @@ -53,37 +54,37 @@ if __name__ == "__main__": | ||||
|  | ||||
|     # now setup our server | ||||
|     server = Server() | ||||
|     #server.disable_clock() | ||||
|     await server.init() | ||||
|     #await server.disable_clock() | ||||
|     #server.set_endpoint("opc.tcp://localhost:4840/freeopcua/server/") | ||||
|     server.set_endpoint("opc.tcp://0.0.0.0:4840/freeopcua/server/") | ||||
|     server.set_server_name("FreeOpcUa Example Server") | ||||
|  | ||||
|     # setup our own namespace | ||||
|     uri = "http://examples.freeopcua.github.io" | ||||
|     idx = server.register_namespace(uri) | ||||
|     idx = await server.register_namespace(uri) | ||||
|  | ||||
|     # get Objects node, this is where we should put our custom stuff | ||||
|     objects = server.nodes.objects | ||||
|  | ||||
|     # populating our address space | ||||
|     myfolder = objects.add_folder(idx, "myEmptyFolder") | ||||
|     myobj = objects.add_object(idx, "MyObject") | ||||
|     myvar = myobj.add_variable(idx, "MyVariable", 6.7) | ||||
|     myvar.set_writable()    # Set MyVariable to be writable by clients | ||||
|     myfolder = await objects.add_folder(idx, "myEmptyFolder") | ||||
|     myobj = await objects.add_object(idx, "MyObject") | ||||
|     myvar = await myobj.add_variable(idx, "MyVariable", 6.7) | ||||
|     await myvar.set_writable()    # Set MyVariable to be writable by clients | ||||
|     | ||||
|  | ||||
|     # starting! | ||||
|     server.start() | ||||
|     await server.start() | ||||
|      | ||||
|     # Create Callback for item event  | ||||
|     server.subscribe_server_callback(CallbackType.ItemSubscriptionCreated, create_monitored_items) | ||||
|     server.subscribe_server_callback(CallbackType.ItemSubscriptionModified, modify_monitored_items) | ||||
|     server.subscribe_server_callback(CallbackType.ItemSubscriptionDeleted, delete_monitored_items) | ||||
|      | ||||
|     while True: | ||||
|         await asyncio.sleep(1) | ||||
|  | ||||
|     print("Available loggers are: ", logging.Logger.manager.loggerDict.keys()) | ||||
|     try: | ||||
|         # enable following if you want to subscribe to nodes on server side | ||||
|         embed() | ||||
|     finally: | ||||
|         server.stop() | ||||
|  | ||||
| if __name__ == '__main__': | ||||
|     asyncio.run(main()) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Andreas Heine
					Andreas Heine