diff -r 1ffff67678ad -r 208a808d1081 runtime/eRPCServer.py --- a/runtime/eRPCServer.py Mon Oct 28 16:02:47 2024 +0100 +++ b/runtime/eRPCServer.py Mon Oct 28 16:06:50 2024 +0100 @@ -60,7 +60,7 @@ lambda orders : ([(order.idx, None if len(order.force)==0 else bytes(order.force)) for order in orders],) } -def rpc_wrapper(method_name): +def rpc_wrapper(method_name, server): PLCobj = PLC() method=getattr(PLCobj, method_name) args_wrapper = ArgsWrappers.get(method_name, lambda *x:x) @@ -73,7 +73,8 @@ return 0 except Exception as e: print(traceback.format_exc()) - PLCobj.LogMessage(CRITICAL_LOG_LEVEL, f'eRPC call {method_name} Exception "{str(e)}"') + PLCobj.LogMessage(LogLevelsDict["CRITICAL"], f'eRPC call {method_name} Exception "{str(e)}"') + server.transport.close() raise return exception_wrapper @@ -110,7 +111,7 @@ handler = type( "PLCObjectServiceHandlder", (IBeremizPLCObjectService,), - {name: rpc_wrapper(name) + {name: rpc_wrapper(name, self) for name,_func in getmembers(IBeremizPLCObjectService, isfunction)})() service = BeremizPLCObjectServiceService(handler)