ProjectController.py
changeset 911 ffa24427396a
parent 906 de452d65865c
child 914 94436558f0ce
equal deleted inserted replaced
910:f6d06bdd31e8 911:ffa24427396a
   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         self.previous_log_count = None
   117         # copy ConfNodeMethods so that it can be later customized
   117         # copy ConfNodeMethods so that it can be later customized
   118         self.StatusMethods = [dic.copy() for dic in self.StatusMethods]
   118         self.StatusMethods = [dic.copy() for dic in self.StatusMethods]
   119 
   119 
   120     def LoadLibraries(self):
   120     def LoadLibraries(self):
   121         self.Libraries = []
   121         self.Libraries = []
  1075         self.EnableMethod("_Clean", False)
  1075         self.EnableMethod("_Clean", False)
  1076         # kill the builder
  1076         # kill the builder
  1077         self._builder = None
  1077         self._builder = None
  1078         self.CompareLocalAndRemotePLC()
  1078         self.CompareLocalAndRemotePLC()
  1079 
  1079 
  1080     ############# Real PLC object access #############
  1080     def UpdatePLCLog(self, log_count):
       
  1081         if log_count and self.previous_log_count != log_count:
       
  1082             #self.logger.write("Now log count is "+repr(log_count)+"\n")
       
  1083             to_console = ['']
       
  1084             for msgidx in xrange(log_count-1, self.previous_log_count - 1 if self.previous_log_count is not None else 0,-1): 
       
  1085                 msg = self._connector.GetLogMessage(msgidx)
       
  1086                 if msg is not None :
       
  1087                     to_console.insert(0, '#' + repr(msgidx) + ": " + msg)
       
  1088                 else:
       
  1089                     #self.logger.write(repr(msgidx) + " : GetLogMessage returned None\n")
       
  1090                     to_console.insert(0, 'No log before #'+repr(msgidx))
       
  1091                     break;
       
  1092             self.logger.write("\n".join(to_console))
       
  1093             self.previous_log_count = log_count
       
  1094 
  1081     def UpdateMethodsFromPLCStatus(self):
  1095     def UpdateMethodsFromPLCStatus(self):
  1082         status = None
  1096         status = None
  1083         if self._connector is not None:
  1097         if self._connector is not None:
  1084             status, log_count = self._connector.GetPLCstatus()
  1098             status, log_count = self._connector.GetPLCstatus()
       
  1099             self.UpdatePLCLog(log_count)
  1085         if status is None:
  1100         if status is None:
  1086             self._connector = None
  1101             self._connector = None
  1087             status = "Disconnected"
  1102             status = "Disconnected"
  1088         if(self.previous_plcstate != status):
  1103         if(self.previous_plcstate != status):
  1089             for args in {
  1104             for args in {
  1101                                       ("_Disconnect", False)],
  1116                                       ("_Disconnect", False)],
  1102                    }.get(status,[]):
  1117                    }.get(status,[]):
  1103                 self.ShowMethod(*args)
  1118                 self.ShowMethod(*args)
  1104             self.previous_plcstate = status
  1119             self.previous_plcstate = status
  1105             return True
  1120             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
       
  1109         return False
  1121         return False
  1110     
  1122     
  1111     def PullPLCStatusProc(self, event):
  1123     def PullPLCStatusProc(self, event):
  1112         if self._connector is None:
  1124         if self._connector is None:
  1113             self.StatusTimer.Stop()
  1125             self.StatusTimer.Stop()