1183 self.IECdebug_lock.release() |
1183 self.IECdebug_lock.release() |
1184 |
1184 |
1185 def ReArmDebugRegisterTimer(self): |
1185 def ReArmDebugRegisterTimer(self): |
1186 if self.DebugTimer is not None: |
1186 if self.DebugTimer is not None: |
1187 self.DebugTimer.cancel() |
1187 self.DebugTimer.cancel() |
1188 |
1188 |
1189 # Timer to prevent rapid-fire when registering many variables |
1189 # Prevent to call RegisterDebugVarToConnector when PLC is not started |
1190 # use wx.CallAfter use keep using same thread. TODO : use wx.Timer instead |
1190 # If an output location var is forced it's leads to segmentation fault in runtime |
1191 self.DebugTimer=Timer(0.5,wx.CallAfter,args = [self.RegisterDebugVarToConnector]) |
1191 # Links between PLC located variables and real variables are not ready |
1192 # Rearm anti-rapid-fire timer |
1192 if self.previous_plcstate == "Started": |
1193 self.DebugTimer.start() |
1193 # Timer to prevent rapid-fire when registering many variables |
|
1194 # use wx.CallAfter use keep using same thread. TODO : use wx.Timer instead |
|
1195 self.DebugTimer=Timer(0.5,wx.CallAfter,args = [self.RegisterDebugVarToConnector]) |
|
1196 # Rearm anti-rapid-fire timer |
|
1197 self.DebugTimer.start() |
1194 |
1198 |
1195 def GetDebugIECVariableType(self, IECPath): |
1199 def GetDebugIECVariableType(self, IECPath): |
1196 Idx, IEC_Type = self._IECPathToIdx.get(IECPath,(None,None)) |
1200 Idx, IEC_Type = self._IECPathToIdx.get(IECPath,(None,None)) |
1197 return IEC_Type |
1201 return IEC_Type |
1198 |
1202 |
1233 |
1237 |
1234 self.ReArmDebugRegisterTimer() |
1238 self.ReArmDebugRegisterTimer() |
1235 |
1239 |
1236 def UnsubscribeAllDebugIECVariable(self): |
1240 def UnsubscribeAllDebugIECVariable(self): |
1237 self.IECdebug_lock.acquire() |
1241 self.IECdebug_lock.acquire() |
1238 IECdebug_data = {} |
1242 self.IECdebug_datas = {} |
1239 self.IECdebug_lock.release() |
1243 self.IECdebug_lock.release() |
1240 |
1244 |
1241 self.ReArmDebugRegisterTimer() |
1245 self.ReArmDebugRegisterTimer() |
1242 |
1246 |
1243 def ForceDebugIECVariable(self, IECPath, fvalue): |
1247 def ForceDebugIECVariable(self, IECPath, fvalue): |