ProjectController.py
changeset 2621 af09744a468e
parent 2620 063391cd313d
child 2631 b5402859dfad
equal deleted inserted replaced
2620:063391cd313d 2621:af09744a468e
  1873 
  1873 
  1874         # purge any non-finished transfer
  1874         # purge any non-finished transfer
  1875         # note: this would abord any runing transfer with error
  1875         # note: this would abord any runing transfer with error
  1876         self._connector.PurgeBlobs()
  1876         self._connector.PurgeBlobs()
  1877 
  1877 
  1878         # transfer extra files
  1878         try:
  1879         extrafiles = []
  1879             # transfer extra files
  1880         for extrafilespath in [self._getExtraFilesPath(),
  1880             extrafiles = []
  1881                                self._getProjectFilesPath()]:
  1881             for extrafilespath in [self._getExtraFilesPath(),
  1882 
  1882                                    self._getProjectFilesPath()]:
  1883             for name in os.listdir(extrafilespath):
  1883 
  1884                 extrafiles.append((
  1884                 for name in os.listdir(extrafilespath):
  1885                     name,
  1885                     extrafiles.append((
  1886                     self._connector.BlobFromFile(
  1886                         name,
  1887                         # use file name as a seed to avoid collisions
  1887                         self._connector.BlobFromFile(
  1888                         # with files having same content
  1888                             # use file name as a seed to avoid collisions
  1889                         os.path.join(extrafilespath, name), name)))
  1889                             # with files having same content
  1890 
  1890                             os.path.join(extrafilespath, name), name)))
  1891         # Send PLC on target
  1891 
  1892         object_path = builder.GetBinaryPath()
  1892             # Send PLC on target
  1893         # arbitrarily use MD5 as a seed, could be any string
  1893             object_path = builder.GetBinaryPath()
  1894         object_blob = self._connector.BlobFromFile(object_path, MD5)
  1894             # arbitrarily use MD5 as a seed, could be any string
  1895 
  1895             object_blob = self._connector.BlobFromFile(object_path, MD5)
  1896         self.HidePLCProgress()
  1896         except IOError as e:
  1897 
  1897             self.HidePLCProgress()
  1898         self.logger.write(_("PLC data transfered successfully.\n"))
  1898             self.logger.write_error(repr(e))
  1899 
  1899         else:
  1900         if self._connector.NewPLC(MD5, object_blob, extrafiles):
  1900             self.HidePLCProgress()
  1901             if self.GetIECProgramsAndVariables():
  1901             self.logger.write(_("PLC data transfered successfully.\n"))
  1902                 self.UnsubscribeAllDebugIECVariable()
  1902 
  1903                 self.ProgramTransferred()
  1903             if self._connector.NewPLC(MD5, object_blob, extrafiles):
  1904                 self.AppFrame.CloseObsoleteDebugTabs()
  1904                 if self.GetIECProgramsAndVariables():
  1905                 self.AppFrame.RefreshPouInstanceVariablesPanel()
  1905                     self.UnsubscribeAllDebugIECVariable()
  1906                 self.AppFrame.LogViewer.ResetLogCounters()
  1906                     self.ProgramTransferred()
  1907                 self.logger.write(_("PLC installed successfully.\n"))
  1907                     self.AppFrame.CloseObsoleteDebugTabs()
       
  1908                     self.AppFrame.RefreshPouInstanceVariablesPanel()
       
  1909                     self.AppFrame.LogViewer.ResetLogCounters()
       
  1910                     self.logger.write(_("PLC installed successfully.\n"))
       
  1911                 else:
       
  1912                     self.logger.write_error(_("Missing debug data\n"))
  1908             else:
  1913             else:
  1909                 self.logger.write_error(_("Missing debug data\n"))
  1914                 self.logger.write_error(_("PLC couldn't be installed\n"))
  1910         else:
       
  1911             self.logger.write_error(_("PLC couldn't be installed\n"))
       
  1912 
  1915 
  1913         wx.CallAfter(self.UpdateMethodsFromPLCStatus)
  1916         wx.CallAfter(self.UpdateMethodsFromPLCStatus)
  1914 
  1917 
  1915     def _Repair(self):
  1918     def _Repair(self):
  1916         dialog = wx.MessageDialog(
  1919         dialog = wx.MessageDialog(