ProjectController.py
branchwxPython4
changeset 3501 fa291393aac7
parent 3480 078d72552c3e
child 3580 0c96269bf63b
equal deleted inserted replaced
3491:88c4b18453d5 3501:fa291393aac7
  1524 
  1524 
  1525     def HidePLCProgress(self):
  1525     def HidePLCProgress(self):
  1526         # clear previous_plcstate to restore status
  1526         # clear previous_plcstate to restore status
  1527         # in UpdateMethodsFromPLCStatus()
  1527         # in UpdateMethodsFromPLCStatus()
  1528         self.previous_plcstate = ""
  1528         self.previous_plcstate = ""
  1529         self.AppFrame.ProgressStatusBar.Hide()
  1529         if self.AppFrame is not None:
       
  1530             self.AppFrame.ProgressStatusBar.Hide()
  1530         self.UpdateMethodsFromPLCStatus()
  1531         self.UpdateMethodsFromPLCStatus()
  1531 
  1532 
  1532     def PullPLCStatusProc(self, event):
  1533     def PullPLCStatusProc(self, event):
  1533         self.UpdateMethodsFromPLCStatus()
  1534         self.UpdateMethodsFromPLCStatus()
  1534 
  1535 
  1783 
  1784 
  1784     def _Run(self):
  1785     def _Run(self):
  1785         """
  1786         """
  1786         Start PLC
  1787         Start PLC
  1787         """
  1788         """
       
  1789         success = False
  1788         if self.GetIECProgramsAndVariables():
  1790         if self.GetIECProgramsAndVariables():
  1789             self._connector.StartPLC()
  1791             self._connector.StartPLC()
  1790             self.logger.write(_("Starting PLC\n"))
  1792             self.logger.write(_("Starting PLC\n"))
  1791             self._connect_debug()
  1793             self._connect_debug()
       
  1794             success = True
  1792         else:
  1795         else:
  1793             self.logger.write_error(_("Couldn't start PLC !\n"))
  1796             self.logger.write_error(_("Couldn't start PLC !\n"))
  1794         wx.CallAfter(self.UpdateMethodsFromPLCStatus)
  1797         wx.CallAfter(self.UpdateMethodsFromPLCStatus)
       
  1798         return success
  1795 
  1799 
  1796     def _Stop(self):
  1800     def _Stop(self):
  1797         """
  1801         """
  1798         Stop PLC
  1802         Stop PLC
  1799         """
  1803         """
  1802 
  1806 
  1803         # debugthread should die on his own
  1807         # debugthread should die on his own
  1804         # self.KillDebugThread()
  1808         # self.KillDebugThread()
  1805 
  1809 
  1806         wx.CallAfter(self.UpdateMethodsFromPLCStatus)
  1810         wx.CallAfter(self.UpdateMethodsFromPLCStatus)
       
  1811 
       
  1812     def StartLocalRuntime(self):
       
  1813         if self.AppFrame:
       
  1814             return self.AppFrame.StartLocalRuntime()
  1807 
  1815 
  1808     def _SetConnector(self, connector, update_status=True):
  1816     def _SetConnector(self, connector, update_status=True):
  1809         self._connector = connector
  1817         self._connector = connector
  1810         if self.AppFrame is not None:
  1818         if self.AppFrame is not None:
  1811             self.AppFrame.LogViewer.SetLogSource(connector)
  1819             self.AppFrame.LogViewer.SetLogSource(connector)
  1819                 self.StatusTimer.Stop()
  1827                 self.StatusTimer.Stop()
  1820             if update_status:
  1828             if update_status:
  1821                 wx.CallAfter(self.UpdateMethodsFromPLCStatus)
  1829                 wx.CallAfter(self.UpdateMethodsFromPLCStatus)
  1822 
  1830 
  1823     def _Connect(self):
  1831     def _Connect(self):
       
  1832         success = False
  1824         # don't accept re-connetion if already connected
  1833         # don't accept re-connetion if already connected
  1825         if self._connector is not None:
  1834         if self._connector is not None:
  1826             self.logger.write_error(
  1835             self.logger.write_error(
  1827                 _("Already connected. Please disconnect\n"))
  1836                 _("Already connected. Please disconnect\n"))
  1828             return
  1837             return
  1880                     self.logger.write(_("Debugger ready\n"))
  1889                     self.logger.write(_("Debugger ready\n"))
  1881                     self._connect_debug()
  1890                     self._connect_debug()
  1882                 else:
  1891                 else:
  1883                     self.logger.write_warning(
  1892                     self.logger.write_warning(
  1884                         _("Debug does not match PLC - stop/transfert/start to re-enable\n"))
  1893                         _("Debug does not match PLC - stop/transfert/start to re-enable\n"))
       
  1894             success = True
       
  1895         return success
  1885 
  1896 
  1886     def CompareLocalAndRemotePLC(self):
  1897     def CompareLocalAndRemotePLC(self):
  1887         if self._connector is None:
  1898         if self._connector is None:
  1888             return
  1899             return
  1889         builder = self.GetBuilder()
  1900         builder = self.GetBuilder()
  1903 
  1914 
  1904     def _Disconnect(self):
  1915     def _Disconnect(self):
  1905         self._SetConnector(None)
  1916         self._SetConnector(None)
  1906 
  1917 
  1907     def _Transfer(self):
  1918     def _Transfer(self):
       
  1919         success = False
  1908         if self.IsPLCStarted():
  1920         if self.IsPLCStarted():
  1909             dialog = wx.MessageDialog(
  1921             dialog = wx.MessageDialog(
  1910                 self.AppFrame,
  1922                 self.AppFrame,
  1911                 _("Cannot transfer while PLC is running. Stop it now?"),
  1923                 _("Cannot transfer while PLC is running. Stop it now?"),
  1912                 style=wx.YES_NO | wx.CENTRE)
  1924                 style=wx.YES_NO | wx.CENTRE)
  1965 
  1977 
  1966             if self._connector.NewPLC(MD5, object_blob, extrafiles):
  1978             if self._connector.NewPLC(MD5, object_blob, extrafiles):
  1967                 if self.GetIECProgramsAndVariables():
  1979                 if self.GetIECProgramsAndVariables():
  1968                     self.UnsubscribeAllDebugIECVariable()
  1980                     self.UnsubscribeAllDebugIECVariable()
  1969                     self.ProgramTransferred()
  1981                     self.ProgramTransferred()
  1970                     self.AppFrame.CloseObsoleteDebugTabs()
  1982                     if self.AppFrame is not None:
  1971                     self.AppFrame.RefreshPouInstanceVariablesPanel()
  1983                         self.AppFrame.CloseObsoleteDebugTabs()
  1972                     self.AppFrame.LogViewer.ResetLogCounters()
  1984                         self.AppFrame.RefreshPouInstanceVariablesPanel()
       
  1985                         self.AppFrame.LogViewer.ResetLogCounters()
  1973                     self.logger.write(_("PLC installed successfully.\n"))
  1986                     self.logger.write(_("PLC installed successfully.\n"))
       
  1987                     success = True
  1974                 else:
  1988                 else:
  1975                     self.logger.write_error(_("Missing debug data\n"))
  1989                     self.logger.write_error(_("Missing debug data\n"))
  1976             else:
  1990             else:
  1977                 self.logger.write_error(_("PLC couldn't be installed\n"))
  1991                 self.logger.write_error(_("PLC couldn't be installed\n"))
  1978 
  1992 
  1979         wx.CallAfter(self.UpdateMethodsFromPLCStatus)
  1993         wx.CallAfter(self.UpdateMethodsFromPLCStatus)
       
  1994         return success
  1980 
  1995 
  1981     def _Repair(self):
  1996     def _Repair(self):
  1982         dialog = wx.MessageDialog(
  1997         dialog = wx.MessageDialog(
  1983             self.AppFrame,
  1998             self.AppFrame,
  1984             _('Delete target PLC application?'),
  1999             _('Delete target PLC application?'),