plugger.py
changeset 328 c23daa6996c2
parent 325 f2604900bf25
child 334 b4131e5d10a4
equal deleted inserted replaced
327:e82c422ad811 328:c23daa6996c2
  1492                 for IECPath,value in zip(self.TracedIECPath, debug_vars):
  1492                 for IECPath,value in zip(self.TracedIECPath, debug_vars):
  1493                     if value is not None:
  1493                     if value is not None:
  1494 	                    data_tuple = self.IECdebug_datas.get(IECPath, None)
  1494 	                    data_tuple = self.IECdebug_datas.get(IECPath, None)
  1495 	                    if data_tuple is not None:
  1495 	                    if data_tuple is not None:
  1496 	                        WeakCallableDict, data_log, status = data_tuple
  1496 	                        WeakCallableDict, data_log, status = data_tuple
  1497 	                        data_log.append((debug_tick, value))
  1497 	                        #data_log.append((debug_tick, value))
  1498 	                        for weakcallable,(args,kwargs) in WeakCallableDict.iteritems():
  1498 	                        for weakcallable,(args,kwargs) in WeakCallableDict.iteritems():
  1499 	                            # delegate call to wx event loop
  1499 	                            # delegate call to wx event loop
  1500 	                            #print weakcallable, value, args, kwargs
  1500 	                            #print weakcallable, value, args, kwargs
  1501 	                            if getattr(weakcallable, "SetValue", None) is not None:
  1501 	                            if getattr(weakcallable, "SetValue", None) is not None:
  1502 	                                wx.CallAfter(weakcallable.SetValue, value, *args, **kwargs)
  1502 	                                wx.CallAfter(weakcallable.SetValue, value, *args, **kwargs)
  1529         Start PLC (Debug Mode)
  1529         Start PLC (Debug Mode)
  1530         """
  1530         """
  1531         if self.GetIECProgramsAndVariables() and \
  1531         if self.GetIECProgramsAndVariables() and \
  1532            self._connector.StartPLC(debug=True):
  1532            self._connector.StartPLC(debug=True):
  1533             self.logger.write("Starting PLC (debug mode)\n")
  1533             self.logger.write("Starting PLC (debug mode)\n")
  1534             self.TracedIECPath = []
       
  1535             if self.PLCDebug is None:
  1534             if self.PLCDebug is None:
  1536                 self.RefreshPluginsBlockLists()
  1535                 self.RefreshPluginsBlockLists()
  1537                 def _onclose():
  1536                 def _onclose():
  1538                     self.PLCDebug = None
  1537                     self.PLCDebug = None
  1539                 self.PLCDebug = PLCOpenEditor(self.AppFrame, self, debug=True)
  1538                 self.PLCDebug = PLCOpenEditor(self.AppFrame, self, debug=True)
  1540                 self.PLCDebug._onclose = _onclose
  1539                 self.PLCDebug._onclose = _onclose
  1541                 self.PLCDebug.Show()
  1540                 self.PLCDebug.Show()
       
  1541             else:
       
  1542                 self.PLCDebug.ResetGraphicViewers()
  1542             self.DebugThread = Thread(target=self.DebugThreadProc)
  1543             self.DebugThread = Thread(target=self.DebugThreadProc)
  1543             self.DebugThread.start()
  1544             self.DebugThread.start()
  1544         else:
  1545         else:
  1545             self.logger.write_error("Couldn't start PLC debug !\n")
  1546             self.logger.write_error("Couldn't start PLC debug !\n")
  1546         self.UpdateMethodsFromPLCStatus()
  1547         self.UpdateMethodsFromPLCStatus()
  1676         builder = self.GetBuilder()
  1677         builder = self.GetBuilder()
  1677         if builder is not None:
  1678         if builder is not None:
  1678             data = builder.GetBinaryCode()
  1679             data = builder.GetBinaryCode()
  1679             if data is not None :
  1680             if data is not None :
  1680                 if self._connector.NewPLC(MD5, data, extrafiles):
  1681                 if self._connector.NewPLC(MD5, data, extrafiles):
       
  1682                     if self.PLCDebug is not None:
       
  1683                         self.PLCDebug.Close()
       
  1684                         self.TracedIECPath = []
       
  1685                         self.PLCDebug = None
  1681                     self.ProgramTransferred()
  1686                     self.ProgramTransferred()
  1682                     self.logger.write("Transfer completed successfully.\n")
  1687                     self.logger.write("Transfer completed successfully.\n")
  1683                 else:
  1688                 else:
  1684                     self.logger.write_error("Transfer failed\n")
  1689                     self.logger.write_error("Transfer failed\n")
  1685             else:
  1690             else: