controls/LogViewer.py
branchpython3
changeset 3750 f62625418bff
parent 3658 5ba5a0177fb3
child 3752 9f6f46dbe3ae
equal deleted inserted replaced
3749:fda6c1a37662 3750:f62625418bff
    21 # You should have received a copy of the GNU General Public License
    21 # You should have received a copy of the GNU General Public License
    22 # along with this program; if not, write to the Free Software
    22 # along with this program; if not, write to the Free Software
    23 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
    23 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
    24 
    24 
    25 
    25 
    26 from __future__ import absolute_import
    26 
    27 from __future__ import division
    27 
    28 from datetime import datetime
    28 from datetime import datetime
    29 from time import time as gettime
    29 from time import time as gettime
    30 from weakref import proxy
    30 from weakref import proxy
    31 
    31 
    32 import numpy
    32 import numpy
   368         self.LogSource = None
   368         self.LogSource = None
   369         self.ResetLogMessages()
   369         self.ResetLogMessages()
   370         self.ParentWindow = window
   370         self.ParentWindow = window
   371 
   371 
   372         self.LevelIcons = [GetBitmap("LOG_" + level) for level in LogLevels]
   372         self.LevelIcons = [GetBitmap("LOG_" + level) for level in LogLevels]
   373         self.LevelFilters = [range(i) for i in xrange(4, 0, -1)]
   373         self.LevelFilters = [list(range(i)) for i in range(4, 0, -1)]
   374         self.CurrentFilter = self.LevelFilters[0]
   374         self.CurrentFilter = self.LevelFilters[0]
   375         self.CurrentSearchValue = ""
   375         self.CurrentSearchValue = ""
   376 
   376 
   377         self.ScrollSpeed = 0.
   377         self.ScrollSpeed = 0.
   378         self.LastStartTime = None
   378         self.LastStartTime = None
   413     def ResetLogCounters(self):
   413     def ResetLogCounters(self):
   414         self.previous_log_count = [None]*LogLevelsCount
   414         self.previous_log_count = [None]*LogLevelsCount
   415 
   415 
   416     def SetLogCounters(self, log_count):
   416     def SetLogCounters(self, log_count):
   417         new_messages = []
   417         new_messages = []
   418         for level, count, prev in zip(xrange(LogLevelsCount), log_count, self.previous_log_count):
   418         for level, count, prev in zip(range(LogLevelsCount), log_count, self.previous_log_count):
   419             if count is not None and prev != count:
   419             if count is not None and prev != count:
   420                 if prev is None:
   420                 if prev is None:
   421                     dump_end = max(-1, count - 10)
   421                     dump_end = max(-1, count - 10)
   422                     oldest_message = (-1, None)
   422                     oldest_message = (-1, None)
   423                 else:
   423                 else:
   424                     dump_end = prev - 1
   424                     dump_end = prev - 1
   425                 for msgidx in xrange(count-1, dump_end, -1):
   425                 for msgidx in range(count-1, dump_end, -1):
   426                     new_message = self.GetLogMessageFromSource(msgidx, level)
   426                     new_message = self.GetLogMessageFromSource(msgidx, level)
   427                     if new_message is None:
   427                     if new_message is None:
   428                         if prev is None:
   428                         if prev is None:
   429                             oldest_message = (-1, None)
   429                             oldest_message = (-1, None)
   430                         break
   430                         break
   558 
   558 
   559         self.MessageScrollBar.RefreshThumbPosition()
   559         self.MessageScrollBar.RefreshThumbPosition()
   560 
   560 
   561     def IsPLCLogEmpty(self):
   561     def IsPLCLogEmpty(self):
   562         empty = True
   562         empty = True
   563         for _level, prev in zip(xrange(LogLevelsCount), self.previous_log_count):
   563         for _level, prev in zip(range(LogLevelsCount), self.previous_log_count):
   564             if prev is not None:
   564             if prev is not None:
   565                 empty = False
   565                 empty = False
   566                 break
   566                 break
   567         return empty
   567         return empty
   568 
   568