controls/DebugVariablePanel/DebugVariableGraphicPanel.py
changeset 1363 e87e0166d0a7
parent 1362 077bcba2d485
equal deleted inserted replaced
1362:077bcba2d485 1363:e87e0166d0a7
   328             self.HasNewData = False
   328             self.HasNewData = False
   329             self.RefreshView()
   329             self.RefreshView()
   330         
   330         
   331         DebugViewer.RefreshNewData(self, *args, **kwargs)
   331         DebugViewer.RefreshNewData(self, *args, **kwargs)
   332     
   332     
   333     def NewDataAvailable(self, tick, *args, **kwargs):
   333     def NewDataAvailable(self, ticks, *args, **kwargs):
   334         """
   334         """
   335         Called by DataProducer for each tick captured or by panel to refresh
   335         Called by DataProducer for each tick captured or by panel to refresh
   336         graphs
   336         graphs
   337         @param tick: PLC tick captured
   337         @param tick: PLC tick captured
   338         All other parameters are passed to refresh function 
   338         All other parameters are passed to refresh function 
   339         """
   339         """
   340         # If tick given
   340         # If tick given
   341         if tick is not None:
   341         if ticks is not None:
   342             self.HasNewData = True
   342             tick = ticks[-1]
   343             
   343             
   344             # Save tick as start tick for range if data is still empty
   344             # Save tick as start tick for range if data is still empty
   345             if len(self.Ticks) == 0:
   345             if len(self.Ticks) == 0:
   346                 self.StartTick = tick 
   346                 self.StartTick = ticks[0]
   347             
   347             
   348             # Add tick to list of ticks received
   348             # Add tick to list of ticks received
   349             self.Ticks = numpy.append(self.Ticks, [tick])
   349             self.Ticks = numpy.append(self.Ticks, ticks)
   350             
   350             
   351             # Update start tick for range if range follow ticks received
   351             # Update start tick for range if range follow ticks received
   352             if not self.Fixed or tick < self.StartTick + self.CurrentRange:
   352             if not self.Fixed or tick < self.StartTick + self.CurrentRange:
   353                 self.StartTick = max(self.StartTick, tick - self.CurrentRange)
   353                 self.StartTick = max(self.StartTick, tick - self.CurrentRange)
   354             
   354             
   355             # Force refresh if graph is fixed because range of data received
   355             # Force refresh if graph is fixed because range of data received
   356             # is too small to fill data range selected
   356             # is too small to fill data range selected
   357             if self.Fixed and \
   357             if self.Fixed and \
   358                self.Ticks[-1] - self.Ticks[0] < self.CurrentRange:
   358                self.Ticks[-1] - self.Ticks[0] < self.CurrentRange:
   359                 self.Force = True
   359                 self.Force = True
   360         
   360             
   361         DebugViewer.NewDataAvailable(self, tick, *args, **kwargs)
   361             self.HasNewData = False
       
   362             self.RefreshView()
       
   363             
       
   364         else:
       
   365             DebugViewer.NewDataAvailable(self, ticks, *args, **kwargs)
   362     
   366     
   363     def ForceRefresh(self):
   367     def ForceRefresh(self):
   364         """
   368         """
   365         Called to force refresh of graphs
   369         Called to force refresh of graphs
   366         """
   370         """