equal
deleted
inserted
replaced
111 self.ProjectPath = None |
111 self.ProjectPath = None |
112 self._setBuildPath(None) |
112 self._setBuildPath(None) |
113 self.DebugThread = None |
113 self.DebugThread = None |
114 self.debug_break = False |
114 self.debug_break = False |
115 self.previous_plcstate = None |
115 self.previous_plcstate = None |
|
116 self.previous_log_count = -1 |
116 # copy ConfNodeMethods so that it can be later customized |
117 # copy ConfNodeMethods so that it can be later customized |
117 self.StatusMethods = [dic.copy() for dic in self.StatusMethods] |
118 self.StatusMethods = [dic.copy() for dic in self.StatusMethods] |
118 |
119 |
119 def LoadLibraries(self): |
120 def LoadLibraries(self): |
120 self.Libraries = [] |
121 self.Libraries = [] |
1076 self._builder = None |
1077 self._builder = None |
1077 self.CompareLocalAndRemotePLC() |
1078 self.CompareLocalAndRemotePLC() |
1078 |
1079 |
1079 ############# Real PLC object access ############# |
1080 ############# Real PLC object access ############# |
1080 def UpdateMethodsFromPLCStatus(self): |
1081 def UpdateMethodsFromPLCStatus(self): |
1081 # Get PLC state : Running or Stopped |
|
1082 # TODO : use explicit status instead of boolean |
|
1083 status = None |
1082 status = None |
1084 if self._connector is not None: |
1083 if self._connector is not None: |
1085 status = self._connector.GetPLCstatus() |
1084 status, log_count = self._connector.GetPLCstatus() |
1086 if status is None: |
1085 if status is None: |
1087 self._connector = None |
1086 self._connector = None |
1088 status = "Disconnected" |
1087 status = "Disconnected" |
1089 if(self.previous_plcstate != status): |
1088 if(self.previous_plcstate != status): |
1090 for args in { |
1089 for args in { |
1102 ("_Disconnect", False)], |
1101 ("_Disconnect", False)], |
1103 }.get(status,[]): |
1102 }.get(status,[]): |
1104 self.ShowMethod(*args) |
1103 self.ShowMethod(*args) |
1105 self.previous_plcstate = status |
1104 self.previous_plcstate = status |
1106 return True |
1105 return True |
|
1106 if(self.previous_log_count != log_count): |
|
1107 self.logger.write("Now log count is %d"%log_count) |
|
1108 self.previous_log_count = log_count |
1107 return False |
1109 return False |
1108 |
1110 |
1109 def PullPLCStatusProc(self, event): |
1111 def PullPLCStatusProc(self, event): |
1110 if self._connector is None: |
1112 if self._connector is None: |
1111 self.StatusTimer.Stop() |
1113 self.StatusTimer.Stop() |
1275 self.debug_break = False |
1277 self.debug_break = False |
1276 debug_getvar_retry = 0 |
1278 debug_getvar_retry = 0 |
1277 while (not self.debug_break) and (self._connector is not None): |
1279 while (not self.debug_break) and (self._connector is not None): |
1278 Trace = self._connector.GetTraceVariables() |
1280 Trace = self._connector.GetTraceVariables() |
1279 if(Trace): |
1281 if(Trace): |
1280 plc_status, debug_tick, debug_vars = Trace |
1282 plc_status, log_count, debug_tick, debug_vars = Trace |
1281 else: |
1283 else: |
1282 plc_status = None |
1284 plc_status = None |
1283 debug_getvar_retry += 1 |
1285 debug_getvar_retry += 1 |
1284 #print debug_tick, debug_vars |
1286 #print debug_tick, debug_vars |
1285 if plc_status == "Started": |
1287 if plc_status == "Started": |