runtime/PLCObject.py
changeset 1780 c52d1460cea8
parent 1768 691083b5682a
child 1783 3311eea28d56
equal deleted inserted replaced
1779:6cf16e5bfbf9 1780:c52d1460cea8
   223             self._loading_error = None
   223             self._loading_error = None
   224 
   224 
   225             self.PythonRuntimeInit()
   225             self.PythonRuntimeInit()
   226 
   226 
   227             return True
   227             return True
   228         except:
   228         except Exception:
   229             self._loading_error = traceback.format_exc()
   229             self._loading_error = traceback.format_exc()
   230             PLCprint(self._loading_error)
   230             PLCprint(self._loading_error)
   231             return False
   231             return False
   232 
   232 
   233     def UnLoadPLC(self):
   233     def UnLoadPLC(self):
   315                     execfile(os.path.join(self.workingdir, filename), self.python_runtime_vars)
   315                     execfile(os.path.join(self.workingdir, filename), self.python_runtime_vars)
   316                     for methodname in MethodNames:
   316                     for methodname in MethodNames:
   317                         method = self.python_runtime_vars.get("_%s_%s" % (name, methodname), None)
   317                         method = self.python_runtime_vars.get("_%s_%s" % (name, methodname), None)
   318                         if method is not None:
   318                         if method is not None:
   319                             self.python_runtime_vars["_runtime_%s" % methodname].append(method)
   319                             self.python_runtime_vars["_runtime_%s" % methodname].append(method)
   320         except:
   320         except Exception:
   321             self.LogMessage(0, traceback.format_exc())
   321             self.LogMessage(0, traceback.format_exc())
   322             raise
   322             raise
   323 
   323 
   324         self.PythonRuntimeCall("init")
   324         self.PythonRuntimeCall("init")
   325 
   325 
   421                 os.remove(os.path.join(self.workingdir,
   421                 os.remove(os.path.join(self.workingdir,
   422                                        self.CurrentPLCFilename))
   422                                        self.CurrentPLCFilename))
   423                 for filename in file(extra_files_log, "r").readlines() + [extra_files_log]:
   423                 for filename in file(extra_files_log, "r").readlines() + [extra_files_log]:
   424                     try:
   424                     try:
   425                         os.remove(os.path.join(self.workingdir, filename.strip()))
   425                         os.remove(os.path.join(self.workingdir, filename.strip()))
   426                     except:
   426                     except Exception:
   427                         pass
   427                         pass
   428             except:
   428             except Exception:
   429                 pass
   429                 pass
   430 
   430 
   431             try:
   431             try:
   432                 # Create new PLC file
   432                 # Create new PLC file
   433                 open(os.path.join(self.workingdir, NewFileName),
   433                 open(os.path.join(self.workingdir, NewFileName),
   443                     open(fpath, "wb").write(fdata)
   443                     open(fpath, "wb").write(fdata)
   444                     log.write(fname+'\n')
   444                     log.write(fname+'\n')
   445 
   445 
   446                 # Store new PLC filename
   446                 # Store new PLC filename
   447                 self.CurrentPLCFilename = NewFileName
   447                 self.CurrentPLCFilename = NewFileName
   448             except:
   448             except Exception:
   449                 self.PLCStatus = "Broken"
   449                 self.PLCStatus = "Broken"
   450                 self.StatusChange()
   450                 self.StatusChange()
   451                 PLCprint(traceback.format_exc())
   451                 PLCprint(traceback.format_exc())
   452                 return False
   452                 return False
   453 
   453 
   463 
   463 
   464     def MatchMD5(self, MD5):
   464     def MatchMD5(self, MD5):
   465         try:
   465         try:
   466             last_md5 = open(self._GetMD5FileName(), "r").read()
   466             last_md5 = open(self._GetMD5FileName(), "r").read()
   467             return last_md5 == MD5
   467             return last_md5 == MD5
   468         except:
   468         except Exception:
   469             pass
   469             pass
   470         return False
   470         return False
   471 
   471 
   472     def SetTraceVariablesList(self, idxs):
   472     def SetTraceVariablesList(self, idxs):
   473         """
   473         """
   554         self._TracesFlush()
   554         self._TracesFlush()
   555 
   555 
   556     def RemoteExec(self, script, *kwargs):
   556     def RemoteExec(self, script, *kwargs):
   557         try:
   557         try:
   558             exec script in kwargs
   558             exec script in kwargs
   559         except:
   559         except Exception:
   560             e_type, e_value, e_traceback = sys.exc_info()
   560             e_type, e_value, e_traceback = sys.exc_info()
   561             line_no = traceback.tb_lineno(get_last_traceback(e_traceback))
   561             line_no = traceback.tb_lineno(get_last_traceback(e_traceback))
   562             return (-1, "RemoteExec script failed!\n\nLine %d: %s\n\t%s" %
   562             return (-1, "RemoteExec script failed!\n\nLine %d: %s\n\t%s" %
   563                         (line_no, e_value, script.splitlines()[line_no - 1]))
   563                         (line_no, e_value, script.splitlines()[line_no - 1]))
   564         return (0, kwargs.get("returnVal", None))
   564         return (0, kwargs.get("returnVal", None))