76 def __init__(self, session): |
76 def __init__(self, session): |
77 self.session = session |
77 self.session = session |
78 log = Log() |
78 log = Log() |
79 LocalRuntimeMixin.__init__(self, log, use_gui=False) |
79 LocalRuntimeMixin.__init__(self, log, use_gui=False) |
80 ProjectController.__init__(self, None, log) |
80 ProjectController.__init__(self, None, log) |
81 self.CLIStatusTimer = None |
|
82 self.KillCLIStatusTimer = False |
|
83 |
|
84 |
|
85 def StartCLIStatusTimer(self): |
|
86 if self.CLIStatusTimer is not None: |
|
87 return |
|
88 self.CLIStatusTimer = Timer(0.5, self.CLIStatusTimerProc) |
|
89 self.KillCLIStatusTimer = False |
|
90 self.CLIStatusTimer.start() |
|
91 |
|
92 def StopCLIStatusTimer(self): |
|
93 if self.CLIStatusTimer is None: |
|
94 return |
|
95 self.KillCLIStatusTimer = True |
|
96 self.CLIStatusTimer.cancel() |
|
97 self.CLIStatusTimer = None |
|
98 |
|
99 def CLIStatusTimerProc(self): |
|
100 self.CLIStatusTimer = None |
|
101 if not self.KillCLIStatusTimer: |
|
102 self.PullPLCStatusProc(None) |
|
103 self.StartCLIStatusTimer() |
|
104 |
81 |
105 def _SetConnector(self, connector, update_status=True): |
82 def _SetConnector(self, connector, update_status=True): |
106 self._connector = connector |
83 self._connector = connector |
107 self.previous_log_count = [None]*LogLevelsCount |
84 self.previous_log_count = [None]*LogLevelsCount |
108 if connector is not None: |
85 if connector is None and update_status: |
109 self.StartCLIStatusTimer() |
|
110 else: |
|
111 self.StopCLIStatusTimer() |
|
112 if update_status: |
|
113 self.UpdateMethodsFromPLCStatus() |
86 self.UpdateMethodsFromPLCStatus() |
114 |
87 |
115 def UpdatePLCLog(self, log_count): |
88 def UpdatePLCLog(self, log_count): |
116 connector = self._connector |
89 connector = self._connector |
117 new_messages = [] |
90 new_messages = [] |