Subversion Repositories Projects

Rev

Rev 591 | Rev 593 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 591 Rev 592
1
#!/usr/bin/env python
1
#!/usr/bin/env python
2
# -*- coding: iso-8859-15 -*-
2
# -*- coding: iso-8859-15 -*-
3
# generated by wxGlade 0.6.3 on Thu Sep 24 15:46:36 2009
3
# generated by wxGlade 0.6.3 on Thu Sep 24 15:46:36 2009
4
 
4
 
5
import sys
5
import sys
6
import wx
6
import wx
7
import wx.lib
7
import wx.lib
8
import wx.lib.plot
8
import wx.lib.plot
9
 
9
 
10
# Needs Numeric or numarray or NumPy
10
# Needs Numeric or numarray or NumPy
11
try:
11
try:
12
    import numpy.oldnumeric as _Numeric
12
    import numpy.oldnumeric as _Numeric
13
except:
13
except:
14
    try:
14
    try:
15
        import numarray as _Numeric  #if numarray is used it is renamed Numeric
15
        import numarray as _Numeric  #if numarray is used it is renamed Numeric
16
    except:
16
    except:
17
        try:
17
        try:
18
            import Numeric as _Numeric
18
            import Numeric as _Numeric
19
        except:
19
        except:
20
            msg= """
20
            msg= """
21
            This module requires the Numeric/numarray or NumPy module,
21
            This module requires the Numeric/numarray or NumPy module,
22
            which could not be imported.  It probably is not installed
22
            which could not be imported.  It probably is not installed
23
            (it's not part of the standard Python distribution). See the
23
            (it's not part of the standard Python distribution). See the
24
            Numeric Python site (http://numpy.scipy.org) for information on
24
            Numeric Python site (http://numpy.scipy.org) for information on
25
            downloading source or binaries."""
25
            downloading source or binaries."""
26
            raise ImportError, "Numeric,numarray or NumPy not found. \n" + msg
26
            raise ImportError, "Numeric,numarray or NumPy not found. \n" + msg
27
 
27
 
28
# begin wxGlade: extracode
28
# begin wxGlade: extracode
29
# end wxGlade
29
# end wxGlade
30
 
30
 
31
 
31
 
32
 
32
 
33
class MenuBar(wx.MenuBar):
33
class MenuBar(wx.MenuBar):
34
    def __init__(self, *args, **kwds):
34
    def __init__(self, *args, **kwds):
35
        # content of this block not found: did you rename this class?
35
        # content of this block not found: did you rename this class?
36
        pass
36
        pass
37
 
37
 
38
    def __set_properties(self):
38
    def __set_properties(self):
39
        # content of this block not found: did you rename this class?
39
        # content of this block not found: did you rename this class?
40
        pass
40
        pass
41
 
41
 
42
    def __do_layout(self):
42
    def __do_layout(self):
43
        # content of this block not found: did you rename this class?
43
        # content of this block not found: did you rename this class?
44
        pass
44
        pass
45
 
45
 
46
# end of class MenuBar
46
# end of class MenuBar
47
 
47
 
48
 
48
 
49
class wxFrame(wx.Panel):
49
class wxFrame(wx.Panel):
50
    def __init__(self, *args, **kwds):
50
    def __init__(self, *args, **kwds):
51
        # content of this block not found: did you rename this class?
51
        # content of this block not found: did you rename this class?
52
        pass
52
        pass
53
 
53
 
54
    def __set_properties(self):
54
    def __set_properties(self):
55
        # content of this block not found: did you rename this class?
55
        # content of this block not found: did you rename this class?
56
        pass
56
        pass
57
 
57
 
58
    def __do_layout(self):
58
    def __do_layout(self):
59
        # content of this block not found: did you rename this class?
59
        # content of this block not found: did you rename this class?
60
        pass
60
        pass
61
 
61
 
62
# end of class wxFrame
62
# end of class wxFrame
63
 
63
 
64
 
64
 
65
class MyFrame(wx.Frame):
65
class MyFrame(wx.Frame):
66
    def __init__(self, *args, **kwds):
66
    def __init__(self, *args, **kwds):
67
        # content of this block not found: did you rename this class?
67
        # content of this block not found: did you rename this class?
68
        pass
68
        pass
69
 
69
 
70
    def __set_properties(self):
70
    def __set_properties(self):
71
        # content of this block not found: did you rename this class?
71
        # content of this block not found: did you rename this class?
72
        pass
72
        pass
73
 
73
 
74
    def __do_layout(self):
74
    def __do_layout(self):
75
        # content of this block not found: did you rename this class?
75
        # content of this block not found: did you rename this class?
76
        pass
76
        pass
77
 
77
 
78
# end of class MyFrame
78
# end of class MyFrame
79
 
79
 
80
 
80
 
81
class MainFrame(wx.Frame):
81
class MainFrame(wx.Frame):
82
    def __init__(self, *args, **kwds):
82
    def __init__(self, *args, **kwds):
83
        # begin wxGlade: MainFrame.__init__
83
        # begin wxGlade: MainFrame.__init__
84
        kwds["style"] = wx.DEFAULT_FRAME_STYLE
84
        kwds["style"] = wx.DEFAULT_FRAME_STYLE
85
        wx.Frame.__init__(self, *args, **kwds)
85
        wx.Frame.__init__(self, *args, **kwds)
86
       
86
       
87
        # Menu Bar
87
        # Menu Bar
88
        self.frame_1_menubar = wx.MenuBar()
88
        self.frame_1_menubar = wx.MenuBar()
89
        wxglade_tmp_menu = wx.Menu()
89
        wxglade_tmp_menu = wx.Menu()
90
        wxglade_tmp_menu.Append(wx.NewId(), "Exit", "", wx.ITEM_NORMAL)
90
        wxglade_tmp_menu.Append(wx.NewId(), "Exit", "", wx.ITEM_NORMAL)
91
        self.frame_1_menubar.Append(wxglade_tmp_menu, "File")
91
        self.frame_1_menubar.Append(wxglade_tmp_menu, "File")
92
        wxglade_tmp_menu = wx.Menu()
92
        wxglade_tmp_menu = wx.Menu()
93
        wxglade_tmp_menu.Append(wx.NewId(), "Clear", "", wx.ITEM_NORMAL)
93
        wxglade_tmp_menu.Append(wx.NewId(), "Clear", "", wx.ITEM_NORMAL)
94
        wxglade_tmp_menu.Append(wx.NewId(), "Import", "", wx.ITEM_NORMAL)
94
        wxglade_tmp_menu.Append(wx.NewId(), "Import", "", wx.ITEM_NORMAL)
95
        self.frame_1_menubar.Append(wxglade_tmp_menu, "TestSet")
95
        self.frame_1_menubar.Append(wxglade_tmp_menu, "TestSet")
96
        wxglade_tmp_menu = wx.Menu()
96
        wxglade_tmp_menu = wx.Menu()
97
        self.frame_1_menubar.Append(wxglade_tmp_menu, "MK")
97
        self.frame_1_menubar.Append(wxglade_tmp_menu, "MK")
98
        wxglade_tmp_menu = wx.Menu()
98
        wxglade_tmp_menu = wx.Menu()
99
        self.frame_1_menubar.Append(wxglade_tmp_menu, "Help")
99
        self.frame_1_menubar.Append(wxglade_tmp_menu, "Help")
100
        self.SetMenuBar(self.frame_1_menubar)
100
        self.SetMenuBar(self.frame_1_menubar)
101
        # Menu Bar end
101
        # Menu Bar end
102
        self.Port = wx.StaticText(self, -1, "Port")
102
        self.Port = wx.StaticText(self, -1, "Port")
103
        self.text_ctrl_1 = wx.TextCtrl(self, -1, "")
103
        self.text_ctrl_1 = wx.TextCtrl(self, -1, "")
104
        self.label_5 = wx.StaticText(self, -1, "label_5")
104
        self.label_5 = wx.StaticText(self, -1, "label_5")
105
        self.text_ctrl_5 = wx.TextCtrl(self, -1, "")
105
        self.text_ctrl_5 = wx.TextCtrl(self, -1, "")
106
        self.label_2 = wx.StaticText(self, -1, "Motor(s)")
106
        self.label_2 = wx.StaticText(self, -1, "Motor(s)")
107
        self.text_ctrl_2 = wx.TextCtrl(self, -1, "")
107
        self.text_ctrl_2 = wx.TextCtrl(self, -1, "")
108
        self.label_6 = wx.StaticText(self, -1, "label_6")
108
        self.label_6 = wx.StaticText(self, -1, "label_6")
109
        self.text_ctrl_6 = wx.TextCtrl(self, -1, "")
109
        self.text_ctrl_6 = wx.TextCtrl(self, -1, "")
110
        self.label_3 = wx.StaticText(self, -1, "Channel(s)")
110
        self.label_3 = wx.StaticText(self, -1, "Channel(s)")
111
        self.text_ctrl_3 = wx.TextCtrl(self, -1, "")
111
        self.text_ctrl_3 = wx.TextCtrl(self, -1, "")
112
        self.label_7 = wx.StaticText(self, -1, "label_7")
112
        self.label_7 = wx.StaticText(self, -1, "label_7")
113
        self.text_ctrl_7 = wx.TextCtrl(self, -1, "")
113
        self.text_ctrl_7 = wx.TextCtrl(self, -1, "")
114
        self.label_4 = wx.StaticText(self, -1, "Speed(s)")
114
        self.label_4 = wx.StaticText(self, -1, "Speed(s)")
115
        self.text_ctrl_4 = wx.TextCtrl(self, -1, "")
115
        self.text_ctrl_4 = wx.TextCtrl(self, -1, "")
116
        self.label_8 = wx.StaticText(self, -1, "label_8")
116
        self.label_8 = wx.StaticText(self, -1, "label_8")
117
        self.text_ctrl_8 = wx.TextCtrl(self, -1, "")
117
        self.text_ctrl_8 = wx.TextCtrl(self, -1, "")
118
        self.button_1 = wx.Button(self, -1, "button_1")
118
        self.button_1 = wx.Button(self, -1, "button_1")
119
        self.GraphPanel = wx.Panel(self, -1, style=wx.DOUBLE_BORDER|wx.TAB_TRAVERSAL)
119
        self.GraphPanel = wx.Panel(self, -1, style=wx.DOUBLE_BORDER|wx.TAB_TRAVERSAL)
120
        self.choice_3 = wx.Choice(self, -1, choices=[])
120
        self.yAxesChoice = wx.ComboBox(self, -1, choices=["10", "25", "50", "100", "250"], style=wx.CB_DROPDOWN)
121
        self.choice_4 = wx.Choice(self, -1, choices=[])
121
        self.graphTypeChoise = wx.ComboBox(self, -1, choices=["Raw Data", "Filtered Data", "Spectrum"], style=wx.CB_DROPDOWN)
122
        self.TestListCtrl = wx.ListCtrl(self, -1, style=wx.LC_REPORT|wx.SUNKEN_BORDER)
122
        self.TestListCtrl = wx.ListCtrl(self, -1, style=wx.LC_REPORT|wx.SUNKEN_BORDER)
123
 
123
 
124
        self.__set_properties()
124
        self.__set_properties()
125
        self.__do_layout()
125
        self.__do_layout()
126
 
126
 
127
        self.Bind(wx.EVT_MENU, self.OnImport, id=-1)
127
        self.Bind(wx.EVT_MENU, self.OnImport, id=-1)
-
 
128
        self.Bind(wx.EVT_COMBOBOX, self.onYAxesChange, self.yAxesChoice)
128
        # end wxGlade
129
        # end wxGlade
129
 
130
 
130
    def setApp(self, app):
131
    def setApp(self, app):
131
        self.app = app
132
        self.app = app
132
 
133
 
133
    def __set_properties(self):
134
    def __set_properties(self):
134
        # begin wxGlade: MainFrame.__set_properties
135
        # begin wxGlade: MainFrame.__set_properties
135
        self.SetTitle("VibrationTest")
136
        self.SetTitle("VibrationTest")
136
        self.GraphPanel.SetMinSize((800,300))
137
        self.GraphPanel.SetMinSize((800,300))
-
 
138
        self.yAxesChoice.SetSelection(2)
-
 
139
        self.graphTypeChoise.SetSelection(0)
137
        # end wxGlade
140
        # end wxGlade
138
 
141
 
139
    def __do_layout(self):
142
    def __do_layout(self):
140
        # begin wxGlade: MainFrame.__do_layout
143
        # begin wxGlade: MainFrame.__do_layout
141
        sizer_1 = wx.BoxSizer(wx.VERTICAL)
144
        sizer_1 = wx.BoxSizer(wx.VERTICAL)
142
        grid_sizer_2 = wx.GridSizer(2, 1, 4, 4)
145
        grid_sizer_2 = wx.GridSizer(2, 1, 4, 4)
143
        sizer_2 = wx.BoxSizer(wx.HORIZONTAL)
146
        sizer_2 = wx.BoxSizer(wx.HORIZONTAL)
144
        grid_sizer_1 = wx.GridSizer(5, 4, 4, 4)
147
        grid_sizer_1 = wx.GridSizer(5, 4, 4, 4)
145
        sizer_1.Add((20, 20), 0, 0, 0)
148
        sizer_1.Add((20, 20), 0, 0, 0)
146
        grid_sizer_1.Add(self.Port, 0, wx.ALIGN_RIGHT, 0)
149
        grid_sizer_1.Add(self.Port, 0, wx.ALIGN_RIGHT, 0)
147
        grid_sizer_1.Add(self.text_ctrl_1, 0, 0, 0)
150
        grid_sizer_1.Add(self.text_ctrl_1, 0, 0, 0)
148
        grid_sizer_1.Add(self.label_5, 0, wx.ALIGN_RIGHT, 0)
151
        grid_sizer_1.Add(self.label_5, 0, wx.ALIGN_RIGHT, 0)
149
        grid_sizer_1.Add(self.text_ctrl_5, 0, 0, 0)
152
        grid_sizer_1.Add(self.text_ctrl_5, 0, 0, 0)
150
        grid_sizer_1.Add(self.label_2, 0, wx.ALIGN_RIGHT, 0)
153
        grid_sizer_1.Add(self.label_2, 0, wx.ALIGN_RIGHT, 0)
151
        grid_sizer_1.Add(self.text_ctrl_2, 0, 0, 0)
154
        grid_sizer_1.Add(self.text_ctrl_2, 0, 0, 0)
152
        grid_sizer_1.Add(self.label_6, 0, wx.ALIGN_RIGHT, 0)
155
        grid_sizer_1.Add(self.label_6, 0, wx.ALIGN_RIGHT, 0)
153
        grid_sizer_1.Add(self.text_ctrl_6, 0, 0, 0)
156
        grid_sizer_1.Add(self.text_ctrl_6, 0, 0, 0)
154
        grid_sizer_1.Add(self.label_3, 0, wx.ALIGN_RIGHT, 0)
157
        grid_sizer_1.Add(self.label_3, 0, wx.ALIGN_RIGHT, 0)
155
        grid_sizer_1.Add(self.text_ctrl_3, 0, 0, 0)
158
        grid_sizer_1.Add(self.text_ctrl_3, 0, 0, 0)
156
        grid_sizer_1.Add(self.label_7, 0, wx.ALIGN_RIGHT, 0)
159
        grid_sizer_1.Add(self.label_7, 0, wx.ALIGN_RIGHT, 0)
157
        grid_sizer_1.Add(self.text_ctrl_7, 0, 0, 0)
160
        grid_sizer_1.Add(self.text_ctrl_7, 0, 0, 0)
158
        grid_sizer_1.Add(self.label_4, 0, wx.ALIGN_RIGHT, 0)
161
        grid_sizer_1.Add(self.label_4, 0, wx.ALIGN_RIGHT, 0)
159
        grid_sizer_1.Add(self.text_ctrl_4, 0, 0, 0)
162
        grid_sizer_1.Add(self.text_ctrl_4, 0, 0, 0)
160
        grid_sizer_1.Add(self.label_8, 0, wx.ALIGN_RIGHT, 0)
163
        grid_sizer_1.Add(self.label_8, 0, wx.ALIGN_RIGHT, 0)
161
        grid_sizer_1.Add(self.text_ctrl_8, 0, 0, 0)
164
        grid_sizer_1.Add(self.text_ctrl_8, 0, 0, 0)
162
        grid_sizer_1.Add(self.button_1, 0, 0, 0)
165
        grid_sizer_1.Add(self.button_1, 0, 0, 0)
163
        sizer_1.Add(grid_sizer_1, 0, 0, 2)
166
        sizer_1.Add(grid_sizer_1, 0, 0, 2)
164
        sizer_1.Add((20, 20), 0, 0, 0)
167
        sizer_1.Add((20, 20), 0, 0, 0)
165
        sizer_1.Add(self.GraphPanel, 1, wx.ALIGN_CENTER_HORIZONTAL, 0)
168
        sizer_1.Add(self.GraphPanel, 1, 0, 0)
166
        sizer_2.Add(self.choice_3, 0, 0, 0)
169
        sizer_2.Add(self.yAxesChoice, 0, 0, 0)
167
        sizer_2.Add(self.choice_4, 0, 0, 0)
170
        sizer_2.Add(self.graphTypeChoise, 0, 0, 0)
168
        sizer_1.Add(sizer_2, 0, wx.EXPAND, 0)
171
        sizer_1.Add(sizer_2, 0, wx.EXPAND, 0)
169
        sizer_1.Add((20, 20), 0, 0, 0)
172
        sizer_1.Add((20, 20), 0, 0, 0)
170
        grid_sizer_2.Add(self.TestListCtrl, 1, wx.ALL|wx.EXPAND, 0)
173
        grid_sizer_2.Add(self.TestListCtrl, 1, wx.ALL|wx.EXPAND, 0)
171
        sizer_1.Add(grid_sizer_2, 1, wx.EXPAND, 0)
174
        sizer_1.Add(grid_sizer_2, 1, wx.EXPAND, 0)
172
        self.SetSizer(sizer_1)
175
        self.SetSizer(sizer_1)
173
        sizer_1.Fit(self)
176
        sizer_1.Fit(self)
174
        self.Layout()
177
        self.Layout()
175
        # end wxGlade
178
        # end wxGlade
176
 
179
 
177
        # List events
180
        # List events
178
        self.TestListCtrl.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnTestSelected, self.TestListCtrl)
181
        self.TestListCtrl.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnTestSelected, self.TestListCtrl)
179
 
182
 
180
        # Configure Graph
183
        # Configure Graph
181
        self.client = wx.lib.plot.PlotCanvas(self.GraphPanel)
184
        self.client = wx.lib.plot.PlotCanvas(self.GraphPanel)
182
        self.client.SetPointLabelFunc(self.DrawPointLabel)
185
        self.client.SetPointLabelFunc(self.DrawPointLabel)
183
       
186
       
184
        self.client.SetFont(wx.Font(10,wx.SWISS,wx.NORMAL,wx.NORMAL))
187
        self.client.SetFont(wx.Font(10,wx.SWISS,wx.NORMAL,wx.NORMAL))
185
        self.client.SetFontSizeAxis(10)
188
        self.client.SetFontSizeAxis(10)
186
        self.client.SetFontSizeLegend(7)
189
        self.client.SetFontSizeLegend(7)
187
        self.client.setLogScale((False,False))
190
        self.client.setLogScale((False,False))
188
        self.client.SetXSpec('auto')
191
        self.client.SetXSpec('auto')
189
        self.client.SetYSpec('auto')
192
        self.client.SetYSpec('auto')
190
 
193
 
191
        data1 = 2.*_Numeric.pi*_Numeric.arange(200)/200.
194
        data1 = 2.*_Numeric.pi*_Numeric.arange(200)/200.
192
        data1.shape = (100, 2)
195
        data1.shape = (100, 2)
193
        data1[:,1] = _Numeric.sin(data1[:,0])
196
        data1[:,1] = _Numeric.sin(data1[:,0])
194
        markers1 = wx.lib.plot.PolyMarker(data1, legend='Green Markers', colour='green', marker='circle',size=1)
197
        markers1 = wx.lib.plot.PolyMarker(data1, legend='Green Markers', colour='green', marker='circle',size=1)
195
        pi = 3.1415
198
        pi = 3.1415
196
        markers2 = wx.lib.plot.PolyMarker([(0., 0.), (pi/4., 1.), (pi/2, 0.),
199
        markers2 = wx.lib.plot.PolyMarker([(0., 0.), (pi/4., 1.), (pi/2, 0.),
197
                          (3.*pi/4., -1)], legend='Cross Legend', colour='blue',
200
                          (3.*pi/4., -1)], legend='Cross Legend', colour='blue',
198
                          marker='cross')
201
                          marker='cross')
199
        #self.client.Draw(wx.lib.plot.PlotGraphics([markers1,markers2],"Graph Title", "X Axis", "Y Axis"))
202
        #self.client.Draw(wx.lib.plot.PlotGraphics([markers1,markers2],"Graph Title", "X Axis", "Y Axis"))
200
 
203
 
201
        # Configure TestListCtrl
204
        # Configure TestListCtrl
202
        self.TestListCtrl.InsertColumn(0, "Name")
205
        self.TestListCtrl.InsertColumn(0, "Name")
203
        self.TestListCtrl.InsertColumn(1, "Result")
206
        self.TestListCtrl.InsertColumn(1, "Result")
204
 
207
 
205
    def DrawPointLabel(self, dc, mDataDict):
208
    def DrawPointLabel(self, dc, mDataDict):
206
        """This is the fuction that defines how the pointLabels are plotted
209
        """This is the fuction that defines how the pointLabels are plotted
207
            dc - DC that will be passed
210
            dc - DC that will be passed
208
            mDataDict - Dictionary of data that you want to use for the pointLabel
211
            mDataDict - Dictionary of data that you want to use for the pointLabel
209
 
212
 
210
            As an example I have decided I want a box at the curve point
213
            As an example I have decided I want a box at the curve point
211
            with some text information about the curve plotted below.
214
            with some text information about the curve plotted below.
212
            Any wxDC method can be used.
215
            Any wxDC method can be used.
213
        """
216
        """
214
        # ----------
217
        # ----------
215
        dc.SetPen(wx.Pen(wx.BLACK))
218
        dc.SetPen(wx.Pen(wx.BLACK))
216
        dc.SetBrush(wx.Brush( wx.BLACK, wx.SOLID ) )
219
        dc.SetBrush(wx.Brush( wx.BLACK, wx.SOLID ) )
217
       
220
       
218
        sx, sy = mDataDict["scaledXY"] #scaled x,y of closest point
221
        sx, sy = mDataDict["scaledXY"] #scaled x,y of closest point
219
        dc.DrawRectangle( sx-5,sy-5, 10, 10)  #10by10 square centered on point
222
        dc.DrawRectangle( sx-5,sy-5, 10, 10)  #10by10 square centered on point
220
        px,py = mDataDict["pointXY"]
223
        px,py = mDataDict["pointXY"]
221
        cNum = mDataDict["curveNum"]
224
        cNum = mDataDict["curveNum"]
222
        pntIn = mDataDict["pIndex"]
225
        pntIn = mDataDict["pIndex"]
223
        legend = mDataDict["legend"]
226
        legend = mDataDict["legend"]
224
        #make a string to display
227
        #make a string to display
225
        s = "Crv# %i, '%s', Pt. (%.2f,%.2f), PtInd %i" %(cNum, legend, px, py, pntIn)
228
        s = "Crv# %i, '%s', Pt. (%.2f,%.2f), PtInd %i" %(cNum, legend, px, py, pntIn)
226
        dc.DrawText(s, sx , sy+1)
229
        dc.DrawText(s, sx , sy+1)
227
        # -----------
230
        # -----------
228
 
231
 
229
    def OnTestSelected(self, event):
232
    def OnTestSelected(self, event):
230
         testId = event.m_itemIndex
233
         testId = event.m_itemIndex
231
         print "Test Selected id=%d" % (testId)
234
         print "Test Selected id=%d" % (testId)
-
 
235
         self.activeTestId = testId
-
 
236
         self.drawGraph()
-
 
237
 
232
 
238
    def drawGraph(self):
233
         vibTest = self.app.getTest(testId)
239
         vibTest = self.app.getTest(self.activeTestId)
-
 
240
         nb = vibTest.getDataLen()
234
         nb = vibTest.getDataLen()
241
         y = int(self.yAxesChoice.GetStringSelection())
235
 
242
 
236
         self.client.Clear()
243
         self.client.Clear()
237
         xydata = _Numeric.arange(nb*2)
244
         xydata = _Numeric.arange(nb*2)
238
         xydata.shape = (nb, 2)
245
         xydata.shape = (nb, 2)
239
         xydata[:,1] = vibTest.getRawData()
246
         xydata[:,1] = vibTest.getRawData()
240
         line = wx.lib.plot.PolyLine(xydata, legend= 'Raw Data', colour='red')
247
         line = wx.lib.plot.PolyLine(xydata, legend= 'Raw Data', colour='red')
241
         self.client.Draw(wx.lib.plot.PlotGraphics([line],"Graph Title", "Time", "Acc"), yAxis= (-100,100))
248
         self.client.Draw(wx.lib.plot.PlotGraphics([line],"Graph Title", "Time", "Acc"), yAxis= (-y,y))
-
 
249
         self.client.SetEnableGrid('Horizontal')
242
 
250
 
243
 
251
 
244
    def OnImport(self, event): # wxGlade: MainFrame.<event_handler>
252
    def OnImport(self, event): # wxGlade: MainFrame.<event_handler>
245
        self.app.Import()
253
        self.app.Import()
-
 
254
 
-
 
255
    def onYAxesChange(self, event): # wxGlade: MainFrame.<event_handler>
-
 
256
        self.drawGraph()
246
 
257
 
247
# end of class MainFrame
258
# end of class MainFrame
248
 
259
 
249
 
260
 
250
class VibTest:
261
class VibTest:
251
    def __init__(self, name, rawData):
262
    def __init__(self, name, rawData):
252
        self.name = name
263
        self.name = name
253
        self.rawData = _Numeric.array(rawData)
264
        self.rawData = _Numeric.array(rawData)
254
        self.dc = self.rawData.mean()
265
        self.dc = self.rawData.mean()
255
        self.rawData -= self.dc
266
        self.rawData -= self.dc
256
        self.dataLen = len(rawData)
267
        self.dataLen = len(rawData)
257
 
268
 
258
    def getName(self):
269
    def getName(self):
259
        return self.name
270
        return self.name
260
 
271
 
261
    def getRawData(self):
272
    def getRawData(self):
262
        return self.rawData
273
        return self.rawData
263
 
274
 
264
    def getDataLen(self):
275
    def getDataLen(self):
265
        return self.dataLen
276
        return self.dataLen
266
 
277
 
267
 
278
 
268
class App(wx.App):
279
class App(wx.App):
269
    def __init__(self, par):
280
    def __init__(self, par):
270
        self.VibTests = []
281
        self.VibTests = []
271
 
282
 
272
        wx.App.__init__(self, par)
283
        wx.App.__init__(self, par)
273
 
284
 
274
 
285
 
275
    def AddTest(self, name, rawData):
286
    def AddTest(self, name, rawData):
276
        test = VibTest(name, rawData)
287
        test = VibTest(name, rawData)
277
        self.VibTests.append(test)
288
        self.VibTests.append(test)
278
 
289
 
279
        index = self.frame_1.TestListCtrl.InsertStringItem(sys.maxint, test.name)
290
        index = self.frame_1.TestListCtrl.InsertStringItem(sys.maxint, test.name)
280
        self.frame_1.TestListCtrl.SetStringItem(index, 1, "OK")
291
        self.frame_1.TestListCtrl.SetStringItem(index, 1, "OK")
281
 
292
 
282
    def getTest(self, testId):
293
    def getTest(self, testId):
283
        return self.VibTests[testId]
294
        return self.VibTests[testId]
284
 
295
 
285
    def OnInit(self):
296
    def OnInit(self):
286
        wx.InitAllImageHandlers()
297
        wx.InitAllImageHandlers()
287
        self.frame_1 = MainFrame(None, -1, "")
298
        self.frame_1 = MainFrame(None, -1, "")
288
        self.frame_1.setApp(self);
299
        self.frame_1.setApp(self);
289
        self.SetTopWindow(self.frame_1)
300
        self.SetTopWindow(self.frame_1)
290
 
301
 
291
        self.frame_1.Show()
302
        self.frame_1.Show()
292
        return 1
303
        return 1
293
 
304
 
294
    def Import(self):
305
    def Import(self):
295
        print "Import"
306
        print "Import"
296
        logfile = open("../Misc/Matlab/Data/unbal200.txt", "r")
307
        logfile = open("../Misc/Matlab/Data/unbal200.txt", "r")
297
        data = None
308
        data = None
298
        for line in logfile:
309
        for line in logfile:
299
            values = line.split(',')
310
            values = line.split(',')
300
            if data == None:
311
            if data == None:
301
                nbCols = len(values)
312
                nbCols = len(values)
302
                print "%d cols" % nbCols
313
                print "%d cols" % nbCols
303
                data = []
314
                data = []
304
                for i in range(nbCols):
315
                for i in range(nbCols):
305
                    data.append([])
316
                    data.append([])
306
            for i in range(nbCols):
317
            for i in range(nbCols):
307
                data[i].append(int(values[i]))
318
                data[i].append(int(values[i]))
308
        logfile.close()
319
        logfile.close()
309
        for i in range(nbCols):
320
        for i in range(nbCols):
310
            self.AddTest("Imported %d"%i, data[i])
321
            self.AddTest("Imported %d"%i, data[i])
311
       
322
       
312
       
323
       
313
           
324
           
314
 
325
 
315
       
326
       
316
# end of class App
327
# end of class App
317
 
328
 
318
if __name__ == "__main__":
329
if __name__ == "__main__":
319
    VibrationTestGui = App(0)
330
    VibrationTestGui = App(0)
320
    VibrationTestGui.MainLoop()
331
    VibrationTestGui.MainLoop()
321
 
332