equal
deleted
inserted
replaced
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)) |