GraphicViewer.py
author laurent
Thu, 16 Feb 2012 22:55:50 +0100
changeset 647 2d53c653d8d2
parent 642 f2325ebd67f4
child 648 95d165193770
permissions -rw-r--r--
Adding support for not closing debug tabs and remove variable in variable debug panel if instance still exist in newly transfered program
301
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
     1
#!/usr/bin/env python
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
     2
# -*- coding: utf-8 -*-
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
     3
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
     4
#This file is part of PLCOpenEditor, a library implementing an IEC 61131-3 editor
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
     5
#based on the plcopen standard. 
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
     6
#
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
     7
#Copyright (C) 2007: Edouard TISSERANT and Laurent BESSARD
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
     8
#
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
     9
#See COPYING file for copyrights details.
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    10
#
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    11
#This library is free software; you can redistribute it and/or
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    12
#modify it under the terms of the GNU General Public
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    13
#License as published by the Free Software Foundation; either
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    14
#version 2.1 of the License, or (at your option) any later version.
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    15
#
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    16
#This library is distributed in the hope that it will be useful,
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    17
#but WITHOUT ANY WARRANTY; without even the implied warranty of
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    18
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    19
#General Public License for more details.
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    20
#
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    21
#You should have received a copy of the GNU General Public
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    22
#License along with this library; if not, write to the Free Software
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    23
#Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    24
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    25
import wx
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    26
import wx.lib.plot as plot
642
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
    27
import numpy
361
62570186dad4 Adding support for synchronize refreshing with tick and limit it to a defined period
greg
parents: 344
diff changeset
    28
from graphics.GraphicCommons import DebugViewer
586
9aa96a36cf33 Moving variable panel from bottom notebook panel to POU editor panel
laurent
parents: 504
diff changeset
    29
from controls import EditorPanel
301
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    30
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    31
colours = ['blue', 'red', 'green', 'yellow', 'orange', 'purple', 'brown', 'cyan',
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    32
           'pink', 'grey']
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    33
markers = ['circle', 'dot', 'square', 'triangle', 'triangle_down', 'cross', 'plus', 'circle']
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    34
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    35
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    36
#-------------------------------------------------------------------------------
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    37
#                       Debug Variable Graphic Viewer class
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    38
#-------------------------------------------------------------------------------
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    39
632
3ea55a5db68e Adding support for choosing graph range in duration instead of tick number when Common_Ticktime is available
laurent
parents: 586
diff changeset
    40
SECOND = 1000000000
3ea55a5db68e Adding support for choosing graph range in duration instead of tick number when Common_Ticktime is available
laurent
parents: 586
diff changeset
    41
MINUTE = 60 * SECOND
3ea55a5db68e Adding support for choosing graph range in duration instead of tick number when Common_Ticktime is available
laurent
parents: 586
diff changeset
    42
HOUR = 60 * MINUTE
3ea55a5db68e Adding support for choosing graph range in duration instead of tick number when Common_Ticktime is available
laurent
parents: 586
diff changeset
    43
3ea55a5db68e Adding support for choosing graph range in duration instead of tick number when Common_Ticktime is available
laurent
parents: 586
diff changeset
    44
RANGE_VALUES = [(str(25 * 2 ** i), 25 * 2 ** i) for i in xrange(6)]
640
c32c169b8f63 Fixing segmentation fault in CustomEditableListBox on Windows when clicking on an header button while a value is being edited
laurent
parents: 632
diff changeset
    45
TIME_RANGE_VALUES = [("%ds" % i, i * SECOND) for i in (1, 2, 5, 10, 20, 30)] + \
632
3ea55a5db68e Adding support for choosing graph range in duration instead of tick number when Common_Ticktime is available
laurent
parents: 586
diff changeset
    46
                    [("%dm" % i, i * MINUTE) for i in (1, 2, 5, 10, 20, 30)] + \
3ea55a5db68e Adding support for choosing graph range in duration instead of tick number when Common_Ticktime is available
laurent
parents: 586
diff changeset
    47
                    [("%dh" % i, i * HOUR) for i in (1, 2, 3, 6, 12, 24)]
301
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    48
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    49
[ID_GRAPHICVIEWER, ID_GRAPHICVIEWERCANVAS,
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    50
 ID_GRAPHICVIEWERCANVASRANGE, ID_GRAPHICVIEWERCANVASPOSITION,
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    51
 ID_GRAPHICVIEWERRESETBUTTON, ID_GRAPHICVIEWERCURRENTBUTTON, 
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    52
 ID_GRAPHICVIEWERSTATICTEXT1, ID_GRAPHICVIEWERSTATICTEXT2,
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    53
] = [wx.NewId() for _init_ctrls in range(8)]
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    54
586
9aa96a36cf33 Moving variable panel from bottom notebook panel to POU editor panel
laurent
parents: 504
diff changeset
    55
class GraphicViewer(EditorPanel, DebugViewer):
301
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    56
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    57
    def _init_coll_MainGridSizer_Items(self, parent):
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    58
        # generated method, don't edit
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    59
        parent.AddWindow(self.Canvas, 0, border=0, flag=wx.GROW)
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    60
        parent.AddSizer(self.RangeSizer, 0, border=0, flag=wx.GROW)
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    61
    
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    62
    def _init_coll_MainGridSizer_Growables(self, parent):
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    63
        # generated method, don't edit
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    64
        parent.AddGrowableCol(0)
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    65
        parent.AddGrowableRow(0)
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    66
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    67
    def _init_coll_RangeSizer_Items(self, parent):
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    68
        # generated method, don't edit
391
07447ee3538e Adding support for internationalization
laurent
parents: 374
diff changeset
    69
        parent.AddWindow(self.staticbox1, 0, border=5, flag=wx.ALIGN_CENTER_VERTICAL|wx.ALL)
301
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    70
        parent.AddWindow(self.CanvasRange, 0, border=5, flag=wx.ALL)
391
07447ee3538e Adding support for internationalization
laurent
parents: 374
diff changeset
    71
        parent.AddWindow(self.staticText2, 0, border=5, flag=wx.ALIGN_CENTER_VERTICAL|wx.ALL)
301
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    72
        parent.AddWindow(self.CanvasPosition, 0, border=5, flag=wx.GROW|wx.ALL)
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    73
        parent.AddWindow(self.ResetButton, 0, border=5, flag=wx.ALL)
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    74
        parent.AddWindow(self.CurrentButton, 0, border=5, flag=wx.ALL)
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    75
        
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    76
    def _init_coll_RangeSizer_Growables(self, parent):
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    77
        # generated method, don't edit
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    78
        parent.AddGrowableCol(3)
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    79
        parent.AddGrowableRow(0)
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    80
        
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    81
    def _init_sizers(self):
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    82
        # generated method, don't edit
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    83
        self.MainGridSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=0)
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    84
        self.RangeSizer = wx.FlexGridSizer(cols=6, hgap=0, rows=1, vgap=0)
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    85
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    86
        self._init_coll_MainGridSizer_Items(self.MainGridSizer)
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    87
        self._init_coll_MainGridSizer_Growables(self.MainGridSizer)
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    88
        self._init_coll_RangeSizer_Items(self.RangeSizer)
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    89
        self._init_coll_RangeSizer_Growables(self.RangeSizer)
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    90
        
586
9aa96a36cf33 Moving variable panel from bottom notebook panel to POU editor panel
laurent
parents: 504
diff changeset
    91
        self.Editor.SetSizer(self.MainGridSizer)
9aa96a36cf33 Moving variable panel from bottom notebook panel to POU editor panel
laurent
parents: 504
diff changeset
    92
    
9aa96a36cf33 Moving variable panel from bottom notebook panel to POU editor panel
laurent
parents: 504
diff changeset
    93
    def _init_Editor(self, prnt):
9aa96a36cf33 Moving variable panel from bottom notebook panel to POU editor panel
laurent
parents: 504
diff changeset
    94
        self.Editor = wx.Panel(prnt, ID_GRAPHICVIEWER, wx.DefaultPosition, 
301
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    95
                 wx.DefaultSize, 0)
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    96
        
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    97
        self.Canvas = plot.PlotCanvas(id=ID_GRAPHICVIEWERCANVAS, 
586
9aa96a36cf33 Moving variable panel from bottom notebook panel to POU editor panel
laurent
parents: 504
diff changeset
    98
              name='Canvas', parent=self.Editor, pos=wx.Point(0, 0),
301
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
    99
              size=wx.Size(0, 0), style=0)
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   100
        def _axisInterval(spec, lower, upper):
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   101
            if spec == 'border':
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   102
                if lower == upper:
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   103
                    return lower - 0.5, upper + 0.5
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   104
                else:
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   105
                    border = (upper - lower) * 0.05
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   106
                    return lower - border, upper + border
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   107
            else:
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   108
                return plot.PlotCanvas._axisInterval(self.Canvas, spec, lower, upper)
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   109
        self.Canvas._axisInterval = _axisInterval
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   110
        self.Canvas.SetYSpec('border')
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   111
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   112
        self.staticbox1 = wx.StaticText(id=ID_GRAPHICVIEWERSTATICTEXT1,
586
9aa96a36cf33 Moving variable panel from bottom notebook panel to POU editor panel
laurent
parents: 504
diff changeset
   113
              label=_('Range:'), name='staticText1', parent=self.Editor,
391
07447ee3538e Adding support for internationalization
laurent
parents: 374
diff changeset
   114
              pos=wx.Point(0, 0), size=wx.DefaultSize, style=0)
301
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   115
        
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   116
        self.CanvasRange = wx.ComboBox(id=ID_GRAPHICVIEWERCANVASRANGE,
586
9aa96a36cf33 Moving variable panel from bottom notebook panel to POU editor panel
laurent
parents: 504
diff changeset
   117
              name='CanvasRange', parent=self.Editor, pos=wx.Point(0, 0),
640
c32c169b8f63 Fixing segmentation fault in CustomEditableListBox on Windows when clicking on an header button while a value is being edited
laurent
parents: 632
diff changeset
   118
              size=wx.Size(100, 28), style=wx.CB_READONLY)
301
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   119
        self.Bind(wx.EVT_COMBOBOX, self.OnRangeChanged, id=ID_GRAPHICVIEWERCANVASRANGE)
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   120
        
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   121
        self.staticText2 = wx.StaticText(id=ID_GRAPHICVIEWERSTATICTEXT2,
586
9aa96a36cf33 Moving variable panel from bottom notebook panel to POU editor panel
laurent
parents: 504
diff changeset
   122
              label=_('Position:'), name='staticText2', parent=self.Editor,
391
07447ee3538e Adding support for internationalization
laurent
parents: 374
diff changeset
   123
              pos=wx.Point(0, 0), size=wx.DefaultSize, style=0)
301
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   124
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   125
        self.CanvasPosition = wx.ScrollBar(id=ID_GRAPHICVIEWERCANVASPOSITION,
586
9aa96a36cf33 Moving variable panel from bottom notebook panel to POU editor panel
laurent
parents: 504
diff changeset
   126
              name='Position', parent=self.Editor, pos=wx.Point(0, 0),
301
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   127
              size=wx.Size(0, 16), style=wx.SB_HORIZONTAL)
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   128
        self.CanvasPosition.SetScrollbar(0, 10, 100, 10)
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   129
        self.CanvasPosition.Bind(wx.EVT_SCROLL_THUMBTRACK, self.OnPositionChanging, 
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   130
              id = ID_GRAPHICVIEWERCANVASPOSITION)
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   131
        self.CanvasPosition.Bind(wx.EVT_SCROLL_LINEUP, self.OnPositionChanging, 
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   132
              id = ID_GRAPHICVIEWERCANVASPOSITION)
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   133
        self.CanvasPosition.Bind(wx.EVT_SCROLL_LINEDOWN, self.OnPositionChanging, 
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   134
              id = ID_GRAPHICVIEWERCANVASPOSITION)
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   135
        self.CanvasPosition.Bind(wx.EVT_SCROLL_PAGEUP, self.OnPositionChanging, 
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   136
              id = ID_GRAPHICVIEWERCANVASPOSITION)
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   137
        self.CanvasPosition.Bind(wx.EVT_SCROLL_PAGEDOWN, self.OnPositionChanging, 
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   138
              id = ID_GRAPHICVIEWERCANVASPOSITION)
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   139
        
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   140
        self.ResetButton = wx.Button(id=ID_GRAPHICVIEWERRESETBUTTON, label='Reset',
586
9aa96a36cf33 Moving variable panel from bottom notebook panel to POU editor panel
laurent
parents: 504
diff changeset
   141
              name='ResetButton', parent=self.Editor, pos=wx.Point(0, 0),
301
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   142
              size=wx.Size(72, 24), style=0)
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   143
        self.Bind(wx.EVT_BUTTON, self.OnResetButton, id=ID_GRAPHICVIEWERRESETBUTTON)
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   144
        
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   145
        self.CurrentButton = wx.Button(id=ID_GRAPHICVIEWERCURRENTBUTTON, label='Current',
586
9aa96a36cf33 Moving variable panel from bottom notebook panel to POU editor panel
laurent
parents: 504
diff changeset
   146
              name='CurrentButton', parent=self.Editor, pos=wx.Point(0, 0),
301
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   147
              size=wx.Size(72, 24), style=0)
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   148
        self.Bind(wx.EVT_BUTTON, self.OnCurrentButton, id=ID_GRAPHICVIEWERCURRENTBUTTON)
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   149
        
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   150
        self._init_sizers()
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   151
415
d3d8f8f0b678 controler (PLCControler) and debug data producer (PluginsRoot) are no longer the same thing
b.taylor@willowglen.ca
parents: 374
diff changeset
   152
    def __init__(self, parent, window, producer, instancepath = ""):
586
9aa96a36cf33 Moving variable panel from bottom notebook panel to POU editor panel
laurent
parents: 504
diff changeset
   153
        EditorPanel.__init__(self, parent, "", window, None)
415
d3d8f8f0b678 controler (PLCControler) and debug data producer (PluginsRoot) are no longer the same thing
b.taylor@willowglen.ca
parents: 374
diff changeset
   154
        DebugViewer.__init__(self, producer, True, False)
361
62570186dad4 Adding support for synchronize refreshing with tick and limit it to a defined period
greg
parents: 344
diff changeset
   155
        
301
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   156
        self.InstancePath = instancepath
632
3ea55a5db68e Adding support for choosing graph range in duration instead of tick number when Common_Ticktime is available
laurent
parents: 586
diff changeset
   157
        self.RangeValues = None
3ea55a5db68e Adding support for choosing graph range in duration instead of tick number when Common_Ticktime is available
laurent
parents: 586
diff changeset
   158
        
301
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   159
        self.Datas = []
642
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   160
        self.StartValue = 0
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   161
        self.EndValue = 0
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   162
        self.Fixed = False
632
3ea55a5db68e Adding support for choosing graph range in duration instead of tick number when Common_Ticktime is available
laurent
parents: 586
diff changeset
   163
        self.Ticktime = self.DataProducer.GetTicktime()
3ea55a5db68e Adding support for choosing graph range in duration instead of tick number when Common_Ticktime is available
laurent
parents: 586
diff changeset
   164
        self.RefreshCanvasRange()
301
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   165
        
361
62570186dad4 Adding support for synchronize refreshing with tick and limit it to a defined period
greg
parents: 344
diff changeset
   166
        self.AddDataConsumer(self.InstancePath.upper(), self)
301
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   167
    
338
87e5015330ae Adding support for ToolTip on wire when debugging
lbessard
parents: 331
diff changeset
   168
    def __del__(self):
361
62570186dad4 Adding support for synchronize refreshing with tick and limit it to a defined period
greg
parents: 344
diff changeset
   169
        DebugViewer.__del__(self)
62570186dad4 Adding support for synchronize refreshing with tick and limit it to a defined period
greg
parents: 344
diff changeset
   170
        self.RemoveDataConsumer(self)
338
87e5015330ae Adding support for ToolTip on wire when debugging
lbessard
parents: 331
diff changeset
   171
    
586
9aa96a36cf33 Moving variable panel from bottom notebook panel to POU editor panel
laurent
parents: 504
diff changeset
   172
    def GetTitle(self):
9aa96a36cf33 Moving variable panel from bottom notebook panel to POU editor panel
laurent
parents: 504
diff changeset
   173
        if len(self.InstancePath) > 15:
9aa96a36cf33 Moving variable panel from bottom notebook panel to POU editor panel
laurent
parents: 504
diff changeset
   174
            return "..." + self.InstancePath[-12:]
9aa96a36cf33 Moving variable panel from bottom notebook panel to POU editor panel
laurent
parents: 504
diff changeset
   175
        return self.InstancePath
9aa96a36cf33 Moving variable panel from bottom notebook panel to POU editor panel
laurent
parents: 504
diff changeset
   176
    
338
87e5015330ae Adding support for ToolTip on wire when debugging
lbessard
parents: 331
diff changeset
   177
    def ResetView(self):
87e5015330ae Adding support for ToolTip on wire when debugging
lbessard
parents: 331
diff changeset
   178
        self.Datas = []
642
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   179
        self.StartValue = 0
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   180
        self.EndValue = 0
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   181
        self.Fixed = False
632
3ea55a5db68e Adding support for choosing graph range in duration instead of tick number when Common_Ticktime is available
laurent
parents: 586
diff changeset
   182
        self.Ticktime = self.DataProducer.GetTicktime()
3ea55a5db68e Adding support for choosing graph range in duration instead of tick number when Common_Ticktime is available
laurent
parents: 586
diff changeset
   183
        self.RefreshCanvasRange()
338
87e5015330ae Adding support for ToolTip on wire when debugging
lbessard
parents: 331
diff changeset
   184
        self.RefreshView()
87e5015330ae Adding support for ToolTip on wire when debugging
lbessard
parents: 331
diff changeset
   185
    
642
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   186
    def RefreshNewData(self, *args, **kwargs):
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   187
        self.RefreshView(*args, **kwargs)
374
16a0a6cb1644 Bug on GraphicViewer with latest modifications fixed
greg
parents: 361
diff changeset
   188
        DebugViewer.RefreshNewData(self)
361
62570186dad4 Adding support for synchronize refreshing with tick and limit it to a defined period
greg
parents: 344
diff changeset
   189
    
632
3ea55a5db68e Adding support for choosing graph range in duration instead of tick number when Common_Ticktime is available
laurent
parents: 586
diff changeset
   190
    def RefreshCanvasRange(self):
3ea55a5db68e Adding support for choosing graph range in duration instead of tick number when Common_Ticktime is available
laurent
parents: 586
diff changeset
   191
        if self.Ticktime == 0 and self.RangeValues != RANGE_VALUES:
3ea55a5db68e Adding support for choosing graph range in duration instead of tick number when Common_Ticktime is available
laurent
parents: 586
diff changeset
   192
            self.RangeValues = RANGE_VALUES
3ea55a5db68e Adding support for choosing graph range in duration instead of tick number when Common_Ticktime is available
laurent
parents: 586
diff changeset
   193
            self.RangeValues_dict = dict(RANGE_VALUES)
3ea55a5db68e Adding support for choosing graph range in duration instead of tick number when Common_Ticktime is available
laurent
parents: 586
diff changeset
   194
            self.CanvasRange.Clear()
3ea55a5db68e Adding support for choosing graph range in duration instead of tick number when Common_Ticktime is available
laurent
parents: 586
diff changeset
   195
            for text, value in RANGE_VALUES:
3ea55a5db68e Adding support for choosing graph range in duration instead of tick number when Common_Ticktime is available
laurent
parents: 586
diff changeset
   196
                self.CanvasRange.Append(text)
3ea55a5db68e Adding support for choosing graph range in duration instead of tick number when Common_Ticktime is available
laurent
parents: 586
diff changeset
   197
            self.CanvasRange.SetStringSelection(RANGE_VALUES[0][0])
3ea55a5db68e Adding support for choosing graph range in duration instead of tick number when Common_Ticktime is available
laurent
parents: 586
diff changeset
   198
            self.CurrentRange = RANGE_VALUES[0][1]
3ea55a5db68e Adding support for choosing graph range in duration instead of tick number when Common_Ticktime is available
laurent
parents: 586
diff changeset
   199
        elif self.RangeValues != TIME_RANGE_VALUES:
3ea55a5db68e Adding support for choosing graph range in duration instead of tick number when Common_Ticktime is available
laurent
parents: 586
diff changeset
   200
            self.RangeValues = TIME_RANGE_VALUES
3ea55a5db68e Adding support for choosing graph range in duration instead of tick number when Common_Ticktime is available
laurent
parents: 586
diff changeset
   201
            self.RangeValues_dict = dict(TIME_RANGE_VALUES)
3ea55a5db68e Adding support for choosing graph range in duration instead of tick number when Common_Ticktime is available
laurent
parents: 586
diff changeset
   202
            self.CanvasRange.Clear()
3ea55a5db68e Adding support for choosing graph range in duration instead of tick number when Common_Ticktime is available
laurent
parents: 586
diff changeset
   203
            for text, value in TIME_RANGE_VALUES:
3ea55a5db68e Adding support for choosing graph range in duration instead of tick number when Common_Ticktime is available
laurent
parents: 586
diff changeset
   204
                self.CanvasRange.Append(text)
3ea55a5db68e Adding support for choosing graph range in duration instead of tick number when Common_Ticktime is available
laurent
parents: 586
diff changeset
   205
            self.CanvasRange.SetStringSelection(TIME_RANGE_VALUES[0][0])
3ea55a5db68e Adding support for choosing graph range in duration instead of tick number when Common_Ticktime is available
laurent
parents: 586
diff changeset
   206
            self.CurrentRange = TIME_RANGE_VALUES[0][1] / self.Ticktime
3ea55a5db68e Adding support for choosing graph range in duration instead of tick number when Common_Ticktime is available
laurent
parents: 586
diff changeset
   207
        
361
62570186dad4 Adding support for synchronize refreshing with tick and limit it to a defined period
greg
parents: 344
diff changeset
   208
    def RefreshView(self, force=True):
62570186dad4 Adding support for synchronize refreshing with tick and limit it to a defined period
greg
parents: 344
diff changeset
   209
        self.Freeze()
642
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   210
        if force or not self.Fixed:
361
62570186dad4 Adding support for synchronize refreshing with tick and limit it to a defined period
greg
parents: 344
diff changeset
   211
            var_name = self.InstancePath.split(".")[-1]
62570186dad4 Adding support for synchronize refreshing with tick and limit it to a defined period
greg
parents: 344
diff changeset
   212
            
642
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   213
            self.VariableGraphic = plot.PolyLine(self.Datas[self.StartValue:self.EndValue + 1], 
361
62570186dad4 Adding support for synchronize refreshing with tick and limit it to a defined period
greg
parents: 344
diff changeset
   214
                                                 legend=var_name, colour=colours[0])
391
07447ee3538e Adding support for internationalization
laurent
parents: 374
diff changeset
   215
            self.GraphicsObject = plot.PlotGraphics([self.VariableGraphic], _("%s Graphics") % var_name, _("Tick"), _("Values"))
361
62570186dad4 Adding support for synchronize refreshing with tick and limit it to a defined period
greg
parents: 344
diff changeset
   216
            datas_length = len(self.Datas)
62570186dad4 Adding support for synchronize refreshing with tick and limit it to a defined period
greg
parents: 344
diff changeset
   217
            if datas_length > 1:
642
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   218
                start = self.Datas[self.StartValue][0]
301
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   219
            else:
361
62570186dad4 Adding support for synchronize refreshing with tick and limit it to a defined period
greg
parents: 344
diff changeset
   220
                start = 0.
642
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   221
            self.Canvas.Draw(self.GraphicsObject, xAxis=(start, start + self.CurrentRange))
301
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   222
        self.RefreshScrollBar()
361
62570186dad4 Adding support for synchronize refreshing with tick and limit it to a defined period
greg
parents: 344
diff changeset
   223
        self.Thaw()
326
c82807b17128 Bugs with undefined functions fixed
lbessard
parents: 313
diff changeset
   224
    
301
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   225
    def GetInstancePath(self):
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   226
        return self.InstancePath
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   227
    
326
c82807b17128 Bugs with undefined functions fixed
lbessard
parents: 313
diff changeset
   228
    def IsViewing(self, tagname):
c82807b17128 Bugs with undefined functions fixed
lbessard
parents: 313
diff changeset
   229
        return self.InstancePath == tagname
c82807b17128 Bugs with undefined functions fixed
lbessard
parents: 313
diff changeset
   230
    
642
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   231
    def GetNearestData(self, tick, adjust):
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   232
        ticks = numpy.array(zip(*self.Datas)[0])
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   233
        new_cursor = numpy.argmin(abs(ticks - tick))
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   234
        if adjust == -1 and ticks[new_cursor] > tick and new_cursor > 0:
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   235
            new_cursor -= 1
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   236
        elif adjust == 1 and ticks[new_cursor] < tick and new_cursor < len(self.Datas):
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   237
            new_cursor += 1
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   238
        return new_cursor
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   239
    
504
f88e0ebd8fe4 Forced variable now supported in GraphicViewer
edouard
parents: 431
diff changeset
   240
    def NewValue(self, tick, value, forced=False):
361
62570186dad4 Adding support for synchronize refreshing with tick and limit it to a defined period
greg
parents: 344
diff changeset
   241
        self.Datas.append((float(tick), {True:1., False:0.}.get(value, float(value))))
642
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   242
        if not self.Fixed:
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   243
            while int(self.Datas[self.StartValue][0]) < tick - self.CurrentRange:
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   244
                self.StartValue += 1
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   245
            self.EndValue += 1
361
62570186dad4 Adding support for synchronize refreshing with tick and limit it to a defined period
greg
parents: 344
diff changeset
   246
        self.NewDataAvailable()
62570186dad4 Adding support for synchronize refreshing with tick and limit it to a defined period
greg
parents: 344
diff changeset
   247
    
301
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   248
    def RefreshScrollBar(self):
642
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   249
        if len(self.Datas) > 0:
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   250
            pos = int(self.Datas[self.StartValue][0] - self.Datas[0][0])
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   251
            range = int(self.Datas[-1][0] - self.Datas[0][0])
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   252
        else:
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   253
            pos = 0
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   254
            range = 0
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   255
        self.CanvasPosition.SetScrollbar(pos, self.CurrentRange, range, self.CurrentRange)
301
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   256
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   257
    def OnRangeChanged(self, event):
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   258
        old_range = self.CurrentRange
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   259
        try:
632
3ea55a5db68e Adding support for choosing graph range in duration instead of tick number when Common_Ticktime is available
laurent
parents: 586
diff changeset
   260
            if self.Ticktime == 0:
3ea55a5db68e Adding support for choosing graph range in duration instead of tick number when Common_Ticktime is available
laurent
parents: 586
diff changeset
   261
                self.CurrentRange = self.RangeValues_dict[self.CanvasRange.GetValue()]
3ea55a5db68e Adding support for choosing graph range in duration instead of tick number when Common_Ticktime is available
laurent
parents: 586
diff changeset
   262
            else:
3ea55a5db68e Adding support for choosing graph range in duration instead of tick number when Common_Ticktime is available
laurent
parents: 586
diff changeset
   263
                self.CurrentRange = self.RangeValues_dict[self.CanvasRange.GetValue()] / self.Ticktime
301
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   264
        except ValueError, e:
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   265
            self.CanvasRange.SetValue(str(self.CurrentRange))
642
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   266
        if self.Fixed and self.Datas[-1][0] - self.Datas[0][0] < self.CurrentRange:
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   267
            self.Fixed = False
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   268
        if self.Fixed:
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   269
            self.StartValue = min(self.StartValue, self.GetNearestData(self.Datas[-1][0] - self.CurrentRange, -1))
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   270
            self.EndValue = self.GetNearestData(self.StartValue + self.CurrentRange, 1)
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   271
        else:
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   272
            self.StartValue = self.GetNearestData(self.Datas[-1][0] - self.CurrentRange - 1, -1)
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   273
            self.EndValue = len(self.Datas) - 1
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   274
        self.NewDataAvailable(True)
301
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   275
        event.Skip()
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   276
    
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   277
    def OnPositionChanging(self, event):
642
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   278
        self.StartValue = self.GetNearestData(self.Datas[0][0] + event.GetPosition(), -1)
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   279
        self.EndValue = self.GetNearestData(self.Datas[self.StartValue][0] + self.CurrentRange, 1)
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   280
        self.Fixed = True
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   281
        self.NewDataAvailable(True)
301
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   282
        event.Skip()
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   283
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   284
    def OnResetButton(self, event):
642
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   285
        self.Fixed = False
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   286
        self.ResteView()
301
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   287
        event.Skip()
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   288
b5e564608b9e Adding support for Graphic for variable in Debug mode
lbessard
parents:
diff changeset
   289
    def OnCurrentButton(self, event):
642
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   290
        self.StartValue = self.GetNearestData(self.Datas[-1][0] - self.CurrentRange, -1)
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   291
        self.EndValue = self.GetNearestData(self.Datas[self.StartValue][0] + self.CurrentRange, 1)
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   292
        self.Fixed = False
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   293
        self.NewDataAvailable(True)
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   294
        event.Skip()
f2325ebd67f4 Fixed wrong time scale in debug graph display when some samples are missed
laurent
parents: 640
diff changeset
   295