diff -r 46dd4358e8a8 -r 67d32a91d70b runtime/PLCObject.py --- a/runtime/PLCObject.py Sun Dec 06 21:43:34 2009 +0100 +++ b/runtime/PLCObject.py Sun Dec 06 22:52:51 2009 +0100 @@ -252,7 +252,7 @@ def StartPLC(self): PLCprint("StartPLC") - if self.CurrentPLCFilename is not None: + if self.CurrentPLCFilename is not None and self.PLCStatus == "Stopped": self.PLCStatus = "Started" self.PythonThread = Thread(target=self.PythonThreadProc) self.PythonThread.start() @@ -384,8 +384,8 @@ tick = ctypes.c_uint32() size = ctypes.c_uint32() buffer = ctypes.c_void_p() + offset = 0 if self._GetDebugData(ctypes.byref(tick),ctypes.byref(size),ctypes.byref(buffer)) == 0 : - offset = 0 for idx, iectype in self._Idxs: cursor = ctypes.c_void_p(buffer.value + offset) c_type,unpack_func = self.TypeTranslator.get(iectype, (None,None)) @@ -401,7 +401,7 @@ break self._FreeDebugData() self.PLClibraryLock.release() - if offset == size.value: + if offset and offset == size.value: return self.PLCStatus, tick.value, res else: PLCprint("Debug error - bad buffer unpack !")