diff -r 2318a7cde101 -r ef327451d067 runtime/PLCObject.py --- a/runtime/PLCObject.py Tue Jan 29 09:14:47 2019 +0100 +++ b/runtime/PLCObject.py Thu Jan 31 14:10:06 2019 +0100 @@ -99,6 +99,7 @@ self.TraceThread = None self.TraceLock = Lock() self.Traces = [] + self.DebugToken = 0 self._init_blobs() @@ -567,11 +568,13 @@ pass return False + @RunInMain def SetTraceVariablesList(self, idxs): """ Call ctype imported function to append these indexes to registred variables in PLC debugger """ + self.DebugToken += 1 if idxs: # suspend but dont disable if self._suspendDebug(False) == 0: @@ -586,8 +589,10 @@ self._RegisterDebugVariable(idx, force) self._TracesSwap() self._resumeDebug() + return self.DebugToken else: self._suspendDebug(True) + return None def _TracesSwap(self): self.LastSwapTrace = time() @@ -601,8 +606,11 @@ return Traces @RunInMain - def GetTraceVariables(self): - return self.PLCStatus, self._TracesSwap() + def GetTraceVariables(self, DebugToken): + if (DebugToken is not None and + DebugToken == self.DebugToken): + return self.PLCStatus, self._TracesSwap() + return PlcStatus.Broken, [] def TraceThreadProc(self): """