# HG changeset patch # User laurent # Date 1260348257 -3600 # Node ID 2e0fe44044b37f74616620684a956cac03165699 # Parent 8b2da4b9d4089875a6da0c65985265b74730b92e Catch Pyro exception when connection closed and print message diff -r 8b2da4b9d408 -r 2e0fe44044b3 connectors/PYRO/__init__.py --- a/connectors/PYRO/__init__.py Wed Dec 09 09:43:21 2009 +0100 +++ b/connectors/PYRO/__init__.py Wed Dec 09 09:44:17 2009 +0100 @@ -56,6 +56,9 @@ def catcher_func(*args,**kwargs): try: return func(*args,**kwargs) + except Pyro.errors.ConnectionClosedError, e: + pluginsroot.logger.write_error("Connection lost!\n") + pluginsroot._connector = None except Exception,e: #pluginsroot.logger.write_error(traceback.format_exc()) errmess = ''.join(Pyro.util.getPyroTraceback(e)) diff -r 8b2da4b9d408 -r 2e0fe44044b3 plugger.py --- a/plugger.py Wed Dec 09 09:43:21 2009 +0100 +++ b/plugger.py Wed Dec 09 09:44:17 2009 +0100 @@ -1540,9 +1540,10 @@ def UpdateMethodsFromPLCStatus(self): # Get PLC state : Running or Stopped # TODO : use explicit status instead of boolean + status = None if self._connector is not None: status = self._connector.GetPLCstatus() - else: + if status is None: status = "Disconnected" if(self.previous_plcstate != status): for args in { @@ -1568,6 +1569,7 @@ if self._connector is None: self.StatusTimer.Stop() if self.UpdateMethodsFromPLCStatus(): + status = _(self.previous_plcstate) {"Broken": self.logger.write_error, None: lambda x: None}.get(