--- a/runtime/PLCObject.py Thu Sep 22 17:00:56 2011 +0200
+++ b/runtime/PLCObject.py Thu Sep 22 17:33:34 2011 +0200
@@ -136,7 +136,7 @@
self._GetDebugData.argtypes = [ctypes.POINTER(ctypes.c_uint32), ctypes.POINTER(ctypes.c_uint32), ctypes.POINTER(ctypes.c_void_p)]
self._suspendDebug = self.PLClibraryHandle.suspendDebug
- self._suspendDebug.restype = None
+ self._suspendDebug.restype = ctypes.c_int self._suspendDebug.argtypes = [ctypes.c_int]
self._resumeDebug = self.PLClibraryHandle.resumeDebug
@@ -161,7 +161,7 @@
self._IterDebugData = lambda x,y:None
self._FreeDebugData = lambda:None
self._GetDebugData = lambda:-1
- self._suspendDebug = lambda x:None
+ self._suspendDebug = lambda x:-1 self._resumeDebug = lambda:None
self._PythonIterator = lambda:""
self.PLClibraryHandle = None
@@ -329,18 +329,18 @@
# suspend but dont disable
- self._suspendDebug(False)
- # keep a copy of requested idx
- self._ResetDebugVariables()
- for idx,iectype,force in idxs:
- c_type,unpack_func, pack_func = \
- TypeTranslator.get(iectype,
- force = ctypes.byref(pack_func(c_type,force))
- self._RegisterDebugVariable(idx, force)
+ if self._suspendDebug(False) == 0: + # keep a copy of requested idx + self._ResetDebugVariables() + for idx,iectype,force in idxs: + c_type,unpack_func, pack_func = \ + TypeTranslator.get(iectype, + force = ctypes.byref(pack_func(c_type,force)) + self._RegisterDebugVariable(idx, force) --- a/targets/Linux/plc_Linux_main.c Thu Sep 22 17:00:56 2011 +0200
+++ b/targets/Linux/plc_Linux_main.c Thu Sep 22 17:33:34 2011 +0200
@@ -10,7 +10,6 @@
-/* provided by POUS.C */
extern unsigned long long common_ticktime__;
long AtomicCompareExchange(long* atomicvar,long compared, long exchange)
@@ -158,7 +157,7 @@
pthread_mutex_unlock(&debug_wait_mutex);
-void suspendDebug(int disable)
+int suspendDebug(int disable) /* Prevent PLC to enter debug code */
pthread_mutex_lock(&debug_mutex);
@@ -166,6 +165,7 @@
pthread_mutex_unlock(&debug_mutex);
--- a/targets/Win32/plc_Win32_main.c Thu Sep 22 17:00:56 2011 +0200
+++ b/targets/Win32/plc_Win32_main.c Thu Sep 22 17:33:34 2011 +0200
@@ -183,14 +183,14 @@
ReleaseSemaphore(debug_wait_sem, 1, NULL);
-void suspendDebug(int disable)
+int suspendDebug(int disable) /* Prevent PLC to enter debug code */
WaitForSingleObject(debug_sem, INFINITE);
- /*__DEBUG is protected by this mutex */
ReleaseSemaphore(debug_sem, 1, NULL);