--- a/controls/DebugVariablePanel.py Wed May 29 11:46:33 2013 +0200
+++ b/controls/DebugVariablePanel.py Wed May 29 12:51:31 2013 +0200
@@ -1432,8 +1432,6 @@
self.ParentWindow = window
- DebugViewer.__init__(self, producer, True)
@@ -1466,10 +1464,12 @@
border=5, flag=wx.LEFT|wx.ALIGN_CENTER_VERTICAL)
- for text, value in RANGE_VALUES:
+ for idx, (text, value) in enumerate(RANGE_VALUES): self.CanvasRange.Append(text)
- self.CanvasRange.SetStringSelection(RANGE_VALUES[6][0])
- self.CurrentRange = RANGE_VALUES[6][1] / self.Ticktime
+ default_range_idx = idx + self.CanvasRange.SetSelection(default_range_idx) for name, bitmap, help in [
("CurrentButton", "current", _("Go to current value")),
@@ -1586,16 +1586,24 @@
self.Table.ResetView(self.VariablesGrid)
self.VariablesGrid.RefreshButtons()
+ DebugViewer.__init__(self, producer, True) self.SetSizer(main_sizer)
+ def SetTickTime(self, ticktime=0): + self.Ticktime = ticktime + self.Ticktime = MILLISECOND + self.CurrentRange = RANGE_VALUES[ + self.CanvasRange.GetSelection()][1] / self.Ticktime def SetDataProducer(self, producer):
DebugViewer.SetDataProducer(self, producer)
if self.DataProducer is not None:
- self.Ticktime = self.DataProducer.GetTicktime()
- self.Ticktime = MILLISECOND
+ self.SetTickTime(self.DataProducer.GetTicktime()) def RefreshNewData(self, *args, **kwargs):
if self.HasNewData or self.Force:
@@ -1644,8 +1652,12 @@
cursor_tick = max(self.Ticks[0],
min(self.CursorTick + move,
- self.CursorTick = self.Ticks[
- numpy.argmin(numpy.abs(self.Ticks - cursor_tick))]
+ cursor_tick_idx = numpy.argmin(numpy.abs(self.Ticks - cursor_tick)) + if self.Ticks[cursor_tick_idx] == self.CursorTick: + cursor_tick_idx = max(0, + min(cursor_tick_idx + abs(move) / move, + self.CursorTick = self.Ticks[cursor_tick_idx] self.StartTick = max(self.Ticks[
numpy.argmin(numpy.abs(self.Ticks -
self.CursorTick + self.CurrentRange))],
@@ -1806,23 +1818,20 @@
self.TickLabel.SetLabel("Tick: %d" % tick)
- tick_duration = int(tick * self.Ticktime)
- for value, format in [(tick_duration / DAY, "%dd"),
- ((tick_duration % DAY) / HOUR, "%dh"),
- ((tick_duration % HOUR) / MINUTE, "%dm"),
- ((tick_duration % MINUTE) / SECOND, "%ds")]:
- if value > 0 or not_null:
- duration += format % value
+ tick_duration = int(tick * self.Ticktime) + for value, format in [(tick_duration / DAY, "%dd"), + ((tick_duration % DAY) / HOUR, "%dh"), + ((tick_duration % HOUR) / MINUTE, "%dm"), + ((tick_duration % MINUTE) / SECOND, "%ds")]: - duration += "%gms" % (float(tick_duration % SECOND) / MILLISECOND)
- self.TickTimeLabel.SetLabel("t: %s" % duration)
- self.TickTimeLabel.SetLabel("")
+ if value > 0 or not_null: + duration += format % value + duration += "%gms" % (float(tick_duration % SECOND) / MILLISECOND) + self.TickTimeLabel.SetLabel("t: %s" % duration) self.TickLabel.SetLabel("")
self.TickTimeLabel.SetLabel("")
@@ -1845,7 +1854,8 @@
self.SubscribeAllDataConsumers()
if self.DataProducer is not None:
- self.Ticktime = self.DataProducer.GetTicktime()
+ if self.DataProducer is not None: + self.SetTickTime(self.DataProducer.GetTicktime()) for panel in self.GraphicPanels:
panel.UnregisterObsoleteData()