Subversion Repositories Projects

Rev

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

Rev 587 Rev 590
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.GraphFanel = wx.Panel(self, -1)
119
        self.GraphFanel = wx.Panel(self, -1)
120
        self.TestListCtrl = wx.ListCtrl(self, -1, style=wx.LC_REPORT|wx.SUNKEN_BORDER)
120
        self.TestListCtrl = wx.ListCtrl(self, -1, style=wx.LC_REPORT|wx.SUNKEN_BORDER)
121
 
121
 
122
        self.__set_properties()
122
        self.__set_properties()
123
        self.__do_layout()
123
        self.__do_layout()
124
 
124
 
125
        self.Bind(wx.EVT_MENU, self.OnImport, id=-1)
125
        self.Bind(wx.EVT_MENU, self.OnImport, id=-1)
126
        # end wxGlade
126
        # end wxGlade
127
 
127
 
128
    def setApp(self, app):
128
    def setApp(self, app):
129
        self.app = app
129
        self.app = app
130
 
130
 
131
    def __set_properties(self):
131
    def __set_properties(self):
132
        # begin wxGlade: MainFrame.__set_properties
132
        # begin wxGlade: MainFrame.__set_properties
133
        self.SetTitle("VibrationTest")
133
        self.SetTitle("VibrationTest")
134
        self.GraphFanel.SetMinSize((800,300))
134
        self.GraphFanel.SetMinSize((800,300))
135
        # end wxGlade
135
        # end wxGlade
136
 
136
 
137
    def __do_layout(self):
137
    def __do_layout(self):
138
        # begin wxGlade: MainFrame.__do_layout
138
        # begin wxGlade: MainFrame.__do_layout
139
        sizer_1 = wx.BoxSizer(wx.VERTICAL)
139
        sizer_1 = wx.BoxSizer(wx.VERTICAL)
140
        grid_sizer_2 = wx.GridSizer(2, 1, 4, 4)
140
        grid_sizer_2 = wx.GridSizer(2, 1, 4, 4)
141
        grid_sizer_1 = wx.GridSizer(5, 4, 4, 4)
141
        grid_sizer_1 = wx.GridSizer(5, 4, 4, 4)
142
        grid_sizer_1.Add(self.Port, 0, wx.ALIGN_RIGHT, 0)
142
        grid_sizer_1.Add(self.Port, 0, wx.ALIGN_RIGHT, 0)
143
        grid_sizer_1.Add(self.text_ctrl_1, 0, 0, 0)
143
        grid_sizer_1.Add(self.text_ctrl_1, 0, 0, 0)
144
        grid_sizer_1.Add(self.label_5, 0, wx.ALIGN_RIGHT, 0)
144
        grid_sizer_1.Add(self.label_5, 0, wx.ALIGN_RIGHT, 0)
145
        grid_sizer_1.Add(self.text_ctrl_5, 0, 0, 0)
145
        grid_sizer_1.Add(self.text_ctrl_5, 0, 0, 0)
146
        grid_sizer_1.Add(self.label_2, 0, wx.ALIGN_RIGHT, 0)
146
        grid_sizer_1.Add(self.label_2, 0, wx.ALIGN_RIGHT, 0)
147
        grid_sizer_1.Add(self.text_ctrl_2, 0, 0, 0)
147
        grid_sizer_1.Add(self.text_ctrl_2, 0, 0, 0)
148
        grid_sizer_1.Add(self.label_6, 0, wx.ALIGN_RIGHT, 0)
148
        grid_sizer_1.Add(self.label_6, 0, wx.ALIGN_RIGHT, 0)
149
        grid_sizer_1.Add(self.text_ctrl_6, 0, 0, 0)
149
        grid_sizer_1.Add(self.text_ctrl_6, 0, 0, 0)
150
        grid_sizer_1.Add(self.label_3, 0, wx.ALIGN_RIGHT, 0)
150
        grid_sizer_1.Add(self.label_3, 0, wx.ALIGN_RIGHT, 0)
151
        grid_sizer_1.Add(self.text_ctrl_3, 0, 0, 0)
151
        grid_sizer_1.Add(self.text_ctrl_3, 0, 0, 0)
152
        grid_sizer_1.Add(self.label_7, 0, wx.ALIGN_RIGHT, 0)
152
        grid_sizer_1.Add(self.label_7, 0, wx.ALIGN_RIGHT, 0)
153
        grid_sizer_1.Add(self.text_ctrl_7, 0, 0, 0)
153
        grid_sizer_1.Add(self.text_ctrl_7, 0, 0, 0)
154
        grid_sizer_1.Add(self.label_4, 0, wx.ALIGN_RIGHT, 0)
154
        grid_sizer_1.Add(self.label_4, 0, wx.ALIGN_RIGHT, 0)
155
        grid_sizer_1.Add(self.text_ctrl_4, 0, 0, 0)
155
        grid_sizer_1.Add(self.text_ctrl_4, 0, 0, 0)
156
        grid_sizer_1.Add(self.label_8, 0, wx.ALIGN_RIGHT, 0)
156
        grid_sizer_1.Add(self.label_8, 0, wx.ALIGN_RIGHT, 0)
157
        grid_sizer_1.Add(self.text_ctrl_8, 0, 0, 0)
157
        grid_sizer_1.Add(self.text_ctrl_8, 0, 0, 0)
158
        grid_sizer_1.Add(self.button_1, 0, 0, 0)
158
        grid_sizer_1.Add(self.button_1, 0, 0, 0)
159
        sizer_1.Add(grid_sizer_1, 0, 0, 2)
159
        sizer_1.Add(grid_sizer_1, 0, 0, 2)
160
        sizer_1.Add(self.GraphFanel, 0, wx.EXPAND, 0)
160
        sizer_1.Add(self.GraphFanel, 0, wx.EXPAND, 0)
161
        grid_sizer_2.Add(self.TestListCtrl, 1, wx.ALL|wx.EXPAND, 0)
161
        grid_sizer_2.Add(self.TestListCtrl, 1, wx.ALL|wx.EXPAND, 0)
162
        sizer_1.Add(grid_sizer_2, 1, wx.EXPAND, 0)
162
        sizer_1.Add(grid_sizer_2, 1, wx.EXPAND, 0)
163
        self.SetSizer(sizer_1)
163
        self.SetSizer(sizer_1)
164
        sizer_1.Fit(self)
164
        sizer_1.Fit(self)
165
        self.Layout()
165
        self.Layout()
166
        # end wxGlade
166
        # end wxGlade
-
 
167
 
-
 
168
        # List events
-
 
169
        self.TestListCtrl.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnTestSelected, self.TestListCtrl)
167
 
170
 
168
        # Configure Graph
171
        # Configure Graph
169
        self.client = wx.lib.plot.PlotCanvas(self.GraphFanel)
172
        self.client = wx.lib.plot.PlotCanvas(self.GraphFanel)
170
        self.client.SetPointLabelFunc(self.DrawPointLabel)
173
        self.client.SetPointLabelFunc(self.DrawPointLabel)
171
       
174
       
172
        self.client.SetFont(wx.Font(10,wx.SWISS,wx.NORMAL,wx.NORMAL))
175
        self.client.SetFont(wx.Font(10,wx.SWISS,wx.NORMAL,wx.NORMAL))
173
        self.client.SetFontSizeAxis(10)
176
        self.client.SetFontSizeAxis(10)
174
        self.client.SetFontSizeLegend(7)
177
        self.client.SetFontSizeLegend(7)
175
        self.client.setLogScale((False,False))
178
        self.client.setLogScale((False,False))
176
        self.client.SetXSpec('auto')
179
        self.client.SetXSpec('auto')
177
        self.client.SetYSpec('auto')
180
        self.client.SetYSpec('auto')
178
 
181
 
179
        data1 = 2.*_Numeric.pi*_Numeric.arange(200)/200.
182
        data1 = 2.*_Numeric.pi*_Numeric.arange(200)/200.
180
        data1.shape = (100, 2)
183
        data1.shape = (100, 2)
181
        data1[:,1] = _Numeric.sin(data1[:,0])
184
        data1[:,1] = _Numeric.sin(data1[:,0])
182
        markers1 = wx.lib.plot.PolyMarker(data1, legend='Green Markers', colour='green', marker='circle',size=1)
185
        markers1 = wx.lib.plot.PolyMarker(data1, legend='Green Markers', colour='green', marker='circle',size=1)
183
        pi = 3.1415
186
        pi = 3.1415
184
        markers2 = wx.lib.plot.PolyMarker([(0., 0.), (pi/4., 1.), (pi/2, 0.),
187
        markers2 = wx.lib.plot.PolyMarker([(0., 0.), (pi/4., 1.), (pi/2, 0.),
185
                          (3.*pi/4., -1)], legend='Cross Legend', colour='blue',
188
                          (3.*pi/4., -1)], legend='Cross Legend', colour='blue',
186
                          marker='cross')
189
                          marker='cross')
187
        self.client.Draw(wx.lib.plot.PlotGraphics([markers1,markers2],"Graph Title", "X Axis", "Y Axis"))
190
        #self.client.Draw(wx.lib.plot.PlotGraphics([markers1,markers2],"Graph Title", "X Axis", "Y Axis"))
188
 
191
 
189
        # Configure TestListCtrl
192
        # Configure TestListCtrl
190
        self.TestListCtrl.InsertColumn(0, "Name")
193
        self.TestListCtrl.InsertColumn(0, "Name")
191
        self.TestListCtrl.InsertColumn(1, "Result")
194
        self.TestListCtrl.InsertColumn(1, "Result")
192
 
195
 
193
    def DrawPointLabel(self, dc, mDataDict):
196
    def DrawPointLabel(self, dc, mDataDict):
194
        """This is the fuction that defines how the pointLabels are plotted
197
        """This is the fuction that defines how the pointLabels are plotted
195
            dc - DC that will be passed
198
            dc - DC that will be passed
196
            mDataDict - Dictionary of data that you want to use for the pointLabel
199
            mDataDict - Dictionary of data that you want to use for the pointLabel
197
 
200
 
198
            As an example I have decided I want a box at the curve point
201
            As an example I have decided I want a box at the curve point
199
            with some text information about the curve plotted below.
202
            with some text information about the curve plotted below.
200
            Any wxDC method can be used.
203
            Any wxDC method can be used.
201
        """
204
        """
202
        # ----------
205
        # ----------
203
        dc.SetPen(wx.Pen(wx.BLACK))
206
        dc.SetPen(wx.Pen(wx.BLACK))
204
        dc.SetBrush(wx.Brush( wx.BLACK, wx.SOLID ) )
207
        dc.SetBrush(wx.Brush( wx.BLACK, wx.SOLID ) )
205
       
208
       
206
        sx, sy = mDataDict["scaledXY"] #scaled x,y of closest point
209
        sx, sy = mDataDict["scaledXY"] #scaled x,y of closest point
207
        dc.DrawRectangle( sx-5,sy-5, 10, 10)  #10by10 square centered on point
210
        dc.DrawRectangle( sx-5,sy-5, 10, 10)  #10by10 square centered on point
208
        px,py = mDataDict["pointXY"]
211
        px,py = mDataDict["pointXY"]
209
        cNum = mDataDict["curveNum"]
212
        cNum = mDataDict["curveNum"]
210
        pntIn = mDataDict["pIndex"]
213
        pntIn = mDataDict["pIndex"]
211
        legend = mDataDict["legend"]
214
        legend = mDataDict["legend"]
212
        #make a string to display
215
        #make a string to display
213
        s = "Crv# %i, '%s', Pt. (%.2f,%.2f), PtInd %i" %(cNum, legend, px, py, pntIn)
216
        s = "Crv# %i, '%s', Pt. (%.2f,%.2f), PtInd %i" %(cNum, legend, px, py, pntIn)
214
        dc.DrawText(s, sx , sy+1)
217
        dc.DrawText(s, sx , sy+1)
215
        # -----------
218
        # -----------
-
 
219
 
-
 
220
    def OnTestSelected(self, event):
-
 
221
         testId = event.m_itemIndex
-
 
222
         print "Test Selected id=%d" % (testId)
-
 
223
 
-
 
224
         vibTest = self.app.getTest(testId)
-
 
225
         nb = vibTest.getDataLen()
-
 
226
 
-
 
227
         self.client.Clear()
-
 
228
         xydata = _Numeric.arange(nb*2)
-
 
229
         xydata.shape = (nb, 2)
-
 
230
         xydata[:,1] = vibTest.getRawData()
-
 
231
         line = wx.lib.plot.PolyLine(xydata, legend= 'Raw Data', colour='red')
-
 
232
         self.client.Draw(wx.lib.plot.PlotGraphics([line],"Graph Title", "Time", "Acc"), yAxis= (-100,100))
-
 
233
 
216
 
234
 
217
    def OnImport(self, event): # wxGlade: MainFrame.<event_handler>
235
    def OnImport(self, event): # wxGlade: MainFrame.<event_handler>
218
        self.app.Import()
236
        self.app.Import()
219
 
237
 
220
# end of class MainFrame
238
# end of class MainFrame
221
 
239
 
222
 
240
 
223
class VibTest:
241
class VibTest:
224
    def __init__(self, name, rawData):
242
    def __init__(self, name, rawData):
225
        self.name = name
243
        self.name = name
-
 
244
        self.rawData = _Numeric.array(rawData)
-
 
245
        self.dc = self.rawData.mean()
226
        self.rawData = rawData
246
        self.rawData -= self.dc
-
 
247
        self.dataLen = len(rawData)
-
 
248
 
-
 
249
    def getName(self):
-
 
250
        return self.name
-
 
251
 
-
 
252
    def getRawData(self):
-
 
253
        return self.rawData
-
 
254
 
-
 
255
    def getDataLen(self):
-
 
256
        return self.dataLen
227
 
257
 
228
 
258
 
229
class App(wx.App):
259
class App(wx.App):
230
    def __init__(self, par):
260
    def __init__(self, par):
231
        self.VibTests = []
261
        self.VibTests = []
232
 
262
 
233
        wx.App.__init__(self, par)
263
        wx.App.__init__(self, par)
234
 
264
 
235
 
265
 
236
    def AddTest(self, name, rawData):
266
    def AddTest(self, name, rawData):
237
        test = VibTest(name, rawData)
267
        test = VibTest(name, rawData)
238
        self.VibTests.append(test)
268
        self.VibTests.append(test)
239
 
269
 
240
        index = self.frame_1.TestListCtrl.InsertStringItem(sys.maxint, test.name)
270
        index = self.frame_1.TestListCtrl.InsertStringItem(sys.maxint, test.name)
241
        self.frame_1.TestListCtrl.SetStringItem(index, 1, "OK")
271
        self.frame_1.TestListCtrl.SetStringItem(index, 1, "OK")
-
 
272
 
-
 
273
    def getTest(self, testId):
-
 
274
        return self.VibTests[testId]
242
 
275
 
243
    def OnInit(self):
276
    def OnInit(self):
244
        wx.InitAllImageHandlers()
277
        wx.InitAllImageHandlers()
245
        self.frame_1 = MainFrame(None, -1, "")
278
        self.frame_1 = MainFrame(None, -1, "")
246
        self.frame_1.setApp(self);
279
        self.frame_1.setApp(self);
247
        self.SetTopWindow(self.frame_1)
280
        self.SetTopWindow(self.frame_1)
248
 
281
 
249
        self.frame_1.Show()
282
        self.frame_1.Show()
250
        return 1
283
        return 1
251
 
284
 
252
    def Import(self):
285
    def Import(self):
253
        print "Import"
286
        print "Import"
-
 
287
        logfile = open("../Misc/Matlab/Data/unbal200.txt", "r")
-
 
288
        data = None
-
 
289
        for line in logfile:
-
 
290
            values = line.split(',')
-
 
291
            if data == None:
-
 
292
                nbCols = len(values)
-
 
293
                print "%d cols" % nbCols
-
 
294
                data = []
254
        self.AddTest("Test1", range(0,1000))
295
                for i in range(nbCols):
-
 
296
                    data.append([])
-
 
297
            for i in range(nbCols):
-
 
298
                data[i].append(int(values[i]))
-
 
299
        logfile.close()
-
 
300
        for i in range(nbCols):
255
        self.AddTest("Test2", range(0,1000))
301
            self.AddTest("Imported %d"%i, data[i])
-
 
302
       
-
 
303
       
-
 
304
           
-
 
305
 
256
 
306
       
257
# end of class App
307
# end of class App
258
 
308
 
259
if __name__ == "__main__":
309
if __name__ == "__main__":
260
    VibrationTestGui = App(0)
310
    VibrationTestGui = App(0)
261
    VibrationTestGui.MainLoop()
311
    VibrationTestGui.MainLoop()
262
 
312