diff -r 46dd4358e8a8 -r 67d32a91d70b plugger.py --- a/plugger.py Sun Dec 06 21:43:34 2009 +0100 +++ b/plugger.py Sun Dec 06 22:52:51 2009 +0100 @@ -1602,6 +1602,9 @@ Idxs.sort() self.TracedIECPath = zip(*Idxs)[2] self._connector.SetTraceVariablesList(zip(*zip(*Idxs)[0:2])) + else: + self.TracedIECPath = [] + self._connector.SetTraceVariablesList([]) self.IECdebug_lock.release() #for IEC_path, IECdebug_data in self.IECdebug_datas.iteritems(): @@ -1727,6 +1730,13 @@ self.logger.write_warning(_("Debug Thread couldn't be killed")) self.DebugThread = None + def _connect_debug(self): + if self.AppFrame: + self.AppFrame.ResetGraphicViewers() + self.RegisterDebugVarToConnector() + self.DebugThread = Thread(target=self.DebugThreadProc) + self.DebugThread.start() + def _Run(self): """ Start PLC @@ -1734,11 +1744,7 @@ if self.GetIECProgramsAndVariables(): self._connector.StartPLC() self.logger.write(_("Starting PLC\n")) - if self.AppFrame: - self.AppFrame.ResetGraphicViewers() - self.RegisterDebugVarToConnector() - self.DebugThread = Thread(target=self.DebugThreadProc) - self.DebugThread.start() + self._connect_debug() else: self.logger.write_error(_("Couldn't start PLC !\n")) self.UpdateMethodsFromPLCStatus() @@ -1830,6 +1836,13 @@ # Start the status Timer self.StatusTimer.Start(milliseconds=500, oneShot=False) + + if self.previous_plcstate=="Started": + if self.DebugAvailable() and self.GetIECProgramsAndVariables(): + self.logger.write(_("Debug connect matching running PLC\n")) + self._connect_debug() + else: + self.logger.write_warning(_("Debug do not match PLC - stop/transfert/start to re-enable\n")) def CompareLocalAndRemotePLC(self): if self._connector is None: @@ -1846,6 +1859,8 @@ self.logger.write( _("Latest build matches target, no transfer needed.\n")) self.EnableMethod("_Transfer", True) + # warns controller that program match + self.ProgramTransferred() #self.EnableMethod("_Transfer", False) else: self.logger.write_warning(