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 """ |