equal
deleted
inserted
replaced
89 self.CurrentPLCFilename = open( |
89 self.CurrentPLCFilename = open( |
90 self._GetMD5FileName(), |
90 self._GetMD5FileName(), |
91 "r").read().strip() + lib_ext |
91 "r").read().strip() + lib_ext |
92 if self.LoadPLC(): |
92 if self.LoadPLC(): |
93 self.PLCStatus = "Stopped" |
93 self.PLCStatus = "Stopped" |
94 except Exception, e: |
94 except Exception: |
95 self.PLCStatus = "Empty" |
95 self.PLCStatus = "Empty" |
96 self.CurrentPLCFilename = None |
96 self.CurrentPLCFilename = None |
97 |
97 |
98 def StatusChange(self): |
98 def StatusChange(self): |
99 if self.statuschange is not None: |
99 if self.statuschange is not None: |
285 try: |
285 try: |
286 t = self.python_runtime_vars["_"+name+"_ctype"] |
286 t = self.python_runtime_vars["_"+name+"_ctype"] |
287 except KeyError: |
287 except KeyError: |
288 raise KeyError("Try to get unknown shared global variable : %s" % name) |
288 raise KeyError("Try to get unknown shared global variable : %s" % name) |
289 v = t() |
289 v = t() |
290 r = self.python_runtime_vars["_PySafeGetPLCGlob_"+name](ctypes.byref(v)) |
290 self.python_runtime_vars["_PySafeGetPLCGlob_"+name](ctypes.byref(v)) |
291 return self.python_runtime_vars["_"+name+"_unpack"](v) |
291 return self.python_runtime_vars["_"+name+"_unpack"](v) |
292 |
292 |
293 def __setattr__(_self, name, value): |
293 def __setattr__(_self, name, value): |
294 try: |
294 try: |
295 t = self.python_runtime_vars["_"+name+"_ctype"] |
295 t = self.python_runtime_vars["_"+name+"_ctype"] |
361 self.LogMessage(1, ('PyEval@0x%x(Code="%s") Exception "%s"') % (FBID, cmd, str(e))) |
361 self.LogMessage(1, ('PyEval@0x%x(Code="%s") Exception "%s"') % (FBID, cmd, str(e))) |
362 |
362 |
363 def StartPLC(self): |
363 def StartPLC(self): |
364 if self.CurrentPLCFilename is not None and self.PLCStatus == "Stopped": |
364 if self.CurrentPLCFilename is not None and self.PLCStatus == "Stopped": |
365 c_argv = ctypes.c_char_p * len(self.argv) |
365 c_argv = ctypes.c_char_p * len(self.argv) |
366 error = None |
|
367 res = self._startPLC(len(self.argv), c_argv(*self.argv)) |
366 res = self._startPLC(len(self.argv), c_argv(*self.argv)) |
368 if res == 0: |
367 if res == 0: |
369 self.PLCStatus = "Started" |
368 self.PLCStatus = "Started" |
370 self.StatusChange() |
369 self.StatusChange() |
371 self.PythonRuntimeCall("start") |
370 self.PythonRuntimeCall("start") |