Subversion Repositories svnkaklik

Rev

Rev 1173 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log

Rev 1173 Rev 1174
1
#!/usr/bin/env python
1
#!/usr/bin/env python
2
##################################################
2
##################################################
3
# Gnuradio Python Flow Graph
3
# Gnuradio Python Flow Graph
4
# Title: MLAB ADC Grabber
4
# Title: MLAB ADC Grabber
5
# Author: Jakub Kakona
5
# Author: Jakub Kakona
6
# Description: Basic software for reading ADC data from ADCdual01A modules trought ML602 development board.
6
# Description: Basic software for reading ADC data from ADCdual01A modules trought ML602 development board.
7
# Generated: Mon Jun  2 15:58:15 2014
7
# Generated: Wed Jul 23 17:43:43 2014
8
##################################################
8
##################################################
9
 
9
 
10
from datetime import datetime
10
from datetime import datetime
11
from gnuradio import blocks
11
from gnuradio import blocks
12
from gnuradio import eng_notation
12
from gnuradio import eng_notation
13
from gnuradio import filter
13
from gnuradio import filter
14
from gnuradio import gr
14
from gnuradio import gr
15
from gnuradio import wxgui
15
from gnuradio import wxgui
16
from gnuradio.eng_option import eng_option
16
from gnuradio.eng_option import eng_option
17
from gnuradio.fft import window
17
from gnuradio.fft import window
18
from gnuradio.filter import firdes
18
from gnuradio.filter import firdes
19
from gnuradio.wxgui import fftsink2
19
from gnuradio.wxgui import fftsink2
20
from gnuradio.wxgui import numbersink2
20
from gnuradio.wxgui import numbersink2
21
from gnuradio.wxgui import scopesink2
21
from gnuradio.wxgui import scopesink2
22
from gnuradio.wxgui import waterfallsink2
22
from gnuradio.wxgui import waterfallsink2
23
from grc_gnuradio import wxgui as grc_wxgui
23
from grc_gnuradio import wxgui as grc_wxgui
24
from optparse import OptionParser
24
from optparse import OptionParser
25
import wx
25
import wx
26
 
26
 
27
class MLAB_ADC_Grabber(grc_wxgui.top_block_gui):
27
class MLAB_ADC_Grabber(grc_wxgui.top_block_gui):
28
 
28
 
29
    def __init__(self):
29
    def __init__(self):
30
        grc_wxgui.top_block_gui.__init__(self, title="MLAB ADC Grabber")
30
        grc_wxgui.top_block_gui.__init__(self, title="MLAB ADC Grabber")
31
        _icon_path = "/usr/local/share/icons/hicolor/32x32/apps/gnuradio-grc.png"
31
        _icon_path = "/usr/local/share/icons/hicolor/32x32/apps/gnuradio-grc.png"
32
        self.SetIcon(wx.Icon(_icon_path, wx.BITMAP_TYPE_ANY))
32
        self.SetIcon(wx.Icon(_icon_path, wx.BITMAP_TYPE_ANY))
33
 
33
 
34
        ##################################################
34
        ##################################################
35
        # Variables
35
        # Variables
36
        ##################################################
36
        ##################################################
37
        self.prefix = prefix = "/home/localuser/gnuradio/"
37
        self.prefix = prefix = "/home/localuser/gnuradio/"
38
        self.samp_rate = samp_rate = 5e6
38
        self.samp_rate = samp_rate = 10e6
39
        self.recfile = recfile = prefix + datetime.now().strftime("%Y.%m.%d.%H.%M.%S") + ".dat"
39
        self.recfile = recfile = prefix + datetime.now().strftime("%Y.%m.%d.%H.%M.%S") + ".dat"
40
 
40
 
41
        ##################################################
41
        ##################################################
42
        # Blocks
42
        # Blocks
43
        ##################################################
43
        ##################################################
44
        self.notebook_0 = self.notebook_0 = wx.Notebook(self.GetWin(), style=wx.NB_TOP)
44
        self.notebook_0 = self.notebook_0 = wx.Notebook(self.GetWin(), style=wx.NB_TOP)
45
        self.notebook_0.AddPage(grc_wxgui.Panel(self.notebook_0), "Time wiev")
45
        self.notebook_0.AddPage(grc_wxgui.Panel(self.notebook_0), "Time wiev")
46
        self.notebook_0.AddPage(grc_wxgui.Panel(self.notebook_0), "Frequency  wiev")
46
        self.notebook_0.AddPage(grc_wxgui.Panel(self.notebook_0), "Frequency  wiev")
47
        self.notebook_0.AddPage(grc_wxgui.Panel(self.notebook_0), "numbers")
47
        self.notebook_0.AddPage(grc_wxgui.Panel(self.notebook_0), "numbers")
48
        self.Add(self.notebook_0)
48
        self.Add(self.notebook_0)
49
        self.wxgui_waterfallsink2_0_0 = waterfallsink2.waterfall_sink_c(
49
        self.wxgui_waterfallsink2_0_0 = waterfallsink2.waterfall_sink_c(
50
        	self.notebook_0.GetPage(0).GetWin(),
50
        	self.notebook_0.GetPage(0).GetWin(),
51
        	baseband_freq=0,
51
        	baseband_freq=0,
52
        	dynamic_range=100,
52
        	dynamic_range=100,
53
        	ref_level=0,
53
        	ref_level=0,
54
        	ref_scale=2.0,
54
        	ref_scale=2.0,
55
        	sample_rate=samp_rate,
55
        	sample_rate=samp_rate,
56
        	fft_size=512,
56
        	fft_size=512,
57
        	fft_rate=15,
57
        	fft_rate=15,
58
        	average=False,
58
        	average=False,
59
        	avg_alpha=None,
59
        	avg_alpha=None,
60
        	title="ADC1 Waterfall Plot",
60
        	title="ADC1 Waterfall Plot",
61
        )
61
        )
62
        self.notebook_0.GetPage(0).GridAdd(self.wxgui_waterfallsink2_0_0.win, 1, 1, 1, 1)
62
        self.notebook_0.GetPage(0).GridAdd(self.wxgui_waterfallsink2_0_0.win, 1, 1, 1, 1)
63
        self.wxgui_waterfallsink2_0 = waterfallsink2.waterfall_sink_c(
63
        self.wxgui_waterfallsink2_0 = waterfallsink2.waterfall_sink_c(
64
        	self.notebook_0.GetPage(0).GetWin(),
64
        	self.notebook_0.GetPage(0).GetWin(),
65
        	baseband_freq=0,
65
        	baseband_freq=0,
66
        	dynamic_range=100,
66
        	dynamic_range=100,
67
        	ref_level=0,
67
        	ref_level=0,
68
        	ref_scale=2.0,
68
        	ref_scale=2.0,
69
        	sample_rate=samp_rate,
69
        	sample_rate=samp_rate,
70
        	fft_size=512,
70
        	fft_size=512,
71
        	fft_rate=15,
71
        	fft_rate=15,
72
        	average=False,
72
        	average=False,
73
        	avg_alpha=None,
73
        	avg_alpha=None,
74
        	title="ADC2 Waterfall Plot",
74
        	title="ADC2 Waterfall Plot",
75
        	win=window.hanning,
75
        	win=window.hanning,
76
        )
76
        )
77
        self.notebook_0.GetPage(0).GridAdd(self.wxgui_waterfallsink2_0.win, 2, 1, 1, 1)
77
        self.notebook_0.GetPage(0).GridAdd(self.wxgui_waterfallsink2_0.win, 2, 1, 1, 1)
78
        self.wxgui_scopesink2_1 = scopesink2.scope_sink_f(
78
        self.wxgui_scopesink2_1 = scopesink2.scope_sink_f(
79
        	self.notebook_0.GetPage(0).GetWin(),
79
        	self.notebook_0.GetPage(0).GetWin(),
80
        	title="Scope Plot",
80
        	title="Scope Plot",
81
        	sample_rate=samp_rate/2,
81
        	sample_rate=samp_rate/2,
82
        	v_scale=0,
82
        	v_scale=0,
83
        	v_offset=0,
83
        	v_offset=0,
84
        	t_scale=1e-2,
84
        	t_scale=1e-2,
85
        	ac_couple=False,
85
        	ac_couple=False,
86
        	xy_mode=False,
86
        	xy_mode=False,
87
        	num_inputs=2,
87
        	num_inputs=2,
88
        	trig_mode=wxgui.TRIG_MODE_AUTO,
88
        	trig_mode=wxgui.TRIG_MODE_AUTO,
89
        	y_axis_label="Counts",
89
        	y_axis_label="Counts",
90
        )
90
        )
91
        self.notebook_0.GetPage(0).GridAdd(self.wxgui_scopesink2_1.win, 2, 2, 1, 1)
91
        self.notebook_0.GetPage(0).GridAdd(self.wxgui_scopesink2_1.win, 2, 2, 1, 1)
92
        self.wxgui_scopesink2_0 = scopesink2.scope_sink_f(
92
        self.wxgui_scopesink2_0 = scopesink2.scope_sink_f(
93
        	self.notebook_0.GetPage(0).GetWin(),
93
        	self.notebook_0.GetPage(0).GetWin(),
94
        	title="Scope Plot",
94
        	title="Scope Plot",
95
        	sample_rate=samp_rate,
95
        	sample_rate=samp_rate,
96
        	v_scale=0,
96
        	v_scale=0,
97
        	v_offset=0,
97
        	v_offset=0,
98
        	t_scale=0,
98
        	t_scale=0,
99
        	ac_couple=False,
99
        	ac_couple=False,
100
        	xy_mode=False,
100
        	xy_mode=False,
101
        	num_inputs=4,
101
        	num_inputs=4,
102
        	trig_mode=wxgui.TRIG_MODE_AUTO,
102
        	trig_mode=wxgui.TRIG_MODE_AUTO,
103
        	y_axis_label="Counts",
103
        	y_axis_label="Counts",
104
        )
104
        )
105
        self.notebook_0.GetPage(0).GridAdd(self.wxgui_scopesink2_0.win, 1, 2, 1, 1)
105
        self.notebook_0.GetPage(0).GridAdd(self.wxgui_scopesink2_0.win, 1, 2, 1, 1)
106
        self.wxgui_numbersink2_1 = numbersink2.number_sink_f(
106
        self.wxgui_numbersink2_1 = numbersink2.number_sink_f(
107
        	self.notebook_0.GetPage(2).GetWin(),
107
        	self.notebook_0.GetPage(2).GetWin(),
108
        	unit="Units",
108
        	unit="Units",
109
        	minval=-100,
109
        	minval=-100,
110
        	maxval=100,
110
        	maxval=100,
111
        	factor=1.0,
111
        	factor=1.0,
112
        	decimal_places=10,
112
        	decimal_places=10,
113
        	ref_level=0,
113
        	ref_level=0,
114
        	sample_rate=samp_rate,
114
        	sample_rate=samp_rate,
115
        	number_rate=15,
115
        	number_rate=15,
116
        	average=False,
116
        	average=False,
117
        	avg_alpha=None,
117
        	avg_alpha=None,
118
        	label="Number Plot",
118
        	label="Number Plot",
119
        	peak_hold=False,
119
        	peak_hold=False,
120
        	show_gauge=True,
120
        	show_gauge=True,
121
        )
121
        )
122
        self.notebook_0.GetPage(2).Add(self.wxgui_numbersink2_1.win)
122
        self.notebook_0.GetPage(2).Add(self.wxgui_numbersink2_1.win)
123
        self.wxgui_numbersink2_0 = numbersink2.number_sink_f(
123
        self.wxgui_numbersink2_0 = numbersink2.number_sink_f(
124
        	self.notebook_0.GetPage(2).GetWin(),
124
        	self.notebook_0.GetPage(2).GetWin(),
125
        	unit="Units",
125
        	unit="Units",
126
        	minval=-100,
126
        	minval=-100,
127
        	maxval=100,
127
        	maxval=100,
128
        	factor=1.0,
128
        	factor=1.0,
129
        	decimal_places=10,
129
        	decimal_places=10,
130
        	ref_level=0,
130
        	ref_level=0,
131
        	sample_rate=samp_rate,
131
        	sample_rate=samp_rate,
132
        	number_rate=15,
132
        	number_rate=15,
133
        	average=False,
133
        	average=False,
134
        	avg_alpha=None,
134
        	avg_alpha=None,
135
        	label="Number Plot",
135
        	label="Number Plot",
136
        	peak_hold=False,
136
        	peak_hold=False,
137
        	show_gauge=True,
137
        	show_gauge=True,
138
        )
138
        )
139
        self.notebook_0.GetPage(2).Add(self.wxgui_numbersink2_0.win)
139
        self.notebook_0.GetPage(2).Add(self.wxgui_numbersink2_0.win)
140
        self.wxgui_fftsink2_1 = fftsink2.fft_sink_c(
140
        self.wxgui_fftsink2_1 = fftsink2.fft_sink_c(
141
        	self.notebook_0.GetPage(1).GetWin(),
141
        	self.notebook_0.GetPage(1).GetWin(),
142
        	baseband_freq=0,
142
        	baseband_freq=0,
143
        	y_per_div=10,
143
        	y_per_div=10,
144
        	y_divs=10,
144
        	y_divs=10,
145
        	ref_level=0,
145
        	ref_level=0,
146
        	ref_scale=2.0,
146
        	ref_scale=2.0,
147
        	sample_rate=samp_rate,
147
        	sample_rate=samp_rate,
148
        	fft_size=2048,
148
        	fft_size=2048,
149
        	fft_rate=15,
149
        	fft_rate=15,
150
        	average=False,
150
        	average=False,
151
        	avg_alpha=None,
151
        	avg_alpha=None,
152
        	title="ADC 1 FFT Plot",
152
        	title="ADC 1 FFT Plot",
153
        	peak_hold=False,
153
        	peak_hold=False,
154
        	win=window.hanning,
154
        	win=window.hanning,
155
        )
155
        )
156
        self.notebook_0.GetPage(1).Add(self.wxgui_fftsink2_1.win)
156
        self.notebook_0.GetPage(1).Add(self.wxgui_fftsink2_1.win)
157
        self.wxgui_fftsink2_0 = fftsink2.fft_sink_c(
157
        self.wxgui_fftsink2_0 = fftsink2.fft_sink_c(
158
        	self.notebook_0.GetPage(1).GetWin(),
158
        	self.notebook_0.GetPage(1).GetWin(),
159
        	baseband_freq=0,
159
        	baseband_freq=0,
160
        	y_per_div=10,
160
        	y_per_div=10,
161
        	y_divs=10,
161
        	y_divs=10,
162
        	ref_level=0,
162
        	ref_level=0,
163
        	ref_scale=2.0,
163
        	ref_scale=2.0,
164
        	sample_rate=samp_rate,
164
        	sample_rate=samp_rate,
165
        	fft_size=2048,
165
        	fft_size=2048,
166
        	fft_rate=15,
166
        	fft_rate=15,
167
        	average=False,
167
        	average=False,
168
        	avg_alpha=None,
168
        	avg_alpha=None,
169
        	title="ADC 2 FFT Plot",
169
        	title="ADC 2 FFT Plot",
170
        	peak_hold=False,
170
        	peak_hold=False,
171
        	win=window.hanning,
171
        	win=window.hanning,
172
        )
172
        )
173
        self.notebook_0.GetPage(1).Add(self.wxgui_fftsink2_0.win)
173
        self.notebook_0.GetPage(1).Add(self.wxgui_fftsink2_0.win)
174
        self.dc_blocker_xx_1 = filter.dc_blocker_cc(32, True)
174
        self.dc_blocker_xx_1 = filter.dc_blocker_cc(32, True)
175
        self.dc_blocker_xx_0 = filter.dc_blocker_cc(32, True)
175
        self.dc_blocker_xx_0 = filter.dc_blocker_cc(32, True)
176
        self.blocks_vector_to_streams_0 = blocks.vector_to_streams(gr.sizeof_short*1, 10)
176
        self.blocks_vector_to_streams_0 = blocks.vector_to_streams(gr.sizeof_short*1, 10)
177
        self.blocks_throttle_2 = blocks.throttle(gr.sizeof_short*10, samp_rate/2)
177
        self.blocks_throttle_2 = blocks.throttle(gr.sizeof_short*10, samp_rate/2)
178
        self.blocks_short_to_float_2_0 = blocks.short_to_float(1, 1)
178
        self.blocks_short_to_float_2_0 = blocks.short_to_float(1, 1)
179
        self.blocks_short_to_float_2 = blocks.short_to_float(1, 1)
179
        self.blocks_short_to_float_2 = blocks.short_to_float(1, 1)
180
        self.blocks_short_to_float_1_0 = blocks.short_to_float(1, 1)
180
        self.blocks_short_to_float_1_0 = blocks.short_to_float(1, 1)
181
        self.blocks_short_to_float_1 = blocks.short_to_float(1, 1)
181
        self.blocks_short_to_float_1 = blocks.short_to_float(1, 1)
182
        self.blocks_short_to_float_0_0 = blocks.short_to_float(1, 1)
182
        self.blocks_short_to_float_0_0 = blocks.short_to_float(1, 1)
183
        self.blocks_short_to_float_0 = blocks.short_to_float(1, 1)
183
        self.blocks_short_to_float_0 = blocks.short_to_float(1, 1)
184
        self.blocks_interleave_0_2 = blocks.interleave(gr.sizeof_short*1)
184
        self.blocks_interleave_0_2 = blocks.interleave(gr.sizeof_short*1)
185
        self.blocks_interleave_0_1 = blocks.interleave(gr.sizeof_short*1)
185
        self.blocks_interleave_0_1 = blocks.interleave(gr.sizeof_short*1)
186
        self.blocks_interleave_0_0 = blocks.interleave(gr.sizeof_short*1)
186
        self.blocks_interleave_0_0 = blocks.interleave(gr.sizeof_short*1)
187
        self.blocks_interleave_0 = blocks.interleave(gr.sizeof_short*1)
187
        self.blocks_interleave_0 = blocks.interleave(gr.sizeof_short*1)
188
        self.blocks_float_to_complex_0_0 = blocks.float_to_complex(1)
188
        self.blocks_float_to_complex_0_0 = blocks.float_to_complex(1)
189
        self.blocks_float_to_complex_0 = blocks.float_to_complex(1)
189
        self.blocks_float_to_complex_0 = blocks.float_to_complex(1)
190
        self.blocks_file_source_0 = blocks.file_source(gr.sizeof_short*10, "/dev/xillybus_data2_r", False)
190
        self.blocks_file_source_0 = blocks.file_source(gr.sizeof_short*10, "/dev/xillybus_data2_r", False)
191
 
191
 
192
        ##################################################
192
        ##################################################
193
        # Connections
193
        # Connections
194
        ##################################################
194
        ##################################################
195
        self.connect((self.blocks_vector_to_streams_0, 2), (self.blocks_interleave_0_2, 0))
195
        self.connect((self.blocks_vector_to_streams_0, 2), (self.blocks_interleave_0_2, 0))
196
        self.connect((self.blocks_vector_to_streams_0, 3), (self.blocks_interleave_0_2, 1))
196
        self.connect((self.blocks_vector_to_streams_0, 3), (self.blocks_interleave_0_2, 1))
197
        self.connect((self.blocks_vector_to_streams_0, 4), (self.blocks_interleave_0_1, 0))
197
        self.connect((self.blocks_vector_to_streams_0, 4), (self.blocks_interleave_0_1, 0))
198
        self.connect((self.blocks_vector_to_streams_0, 5), (self.blocks_interleave_0_1, 1))
198
        self.connect((self.blocks_vector_to_streams_0, 5), (self.blocks_interleave_0_1, 1))
199
        self.connect((self.blocks_vector_to_streams_0, 6), (self.blocks_interleave_0_0, 0))
199
        self.connect((self.blocks_vector_to_streams_0, 6), (self.blocks_interleave_0_0, 0))
200
        self.connect((self.blocks_vector_to_streams_0, 7), (self.blocks_interleave_0_0, 1))
200
        self.connect((self.blocks_vector_to_streams_0, 7), (self.blocks_interleave_0_0, 1))
201
        self.connect((self.blocks_vector_to_streams_0, 8), (self.blocks_interleave_0, 0))
201
        self.connect((self.blocks_vector_to_streams_0, 8), (self.blocks_interleave_0, 0))
202
        self.connect((self.blocks_vector_to_streams_0, 9), (self.blocks_interleave_0, 1))
202
        self.connect((self.blocks_vector_to_streams_0, 9), (self.blocks_interleave_0, 1))
203
        self.connect((self.blocks_short_to_float_1, 0), (self.blocks_float_to_complex_0, 1))
203
        self.connect((self.blocks_short_to_float_1, 0), (self.blocks_float_to_complex_0, 1))
204
        self.connect((self.blocks_short_to_float_0, 0), (self.blocks_float_to_complex_0, 0))
204
        self.connect((self.blocks_short_to_float_0, 0), (self.blocks_float_to_complex_0, 0))
205
        self.connect((self.blocks_short_to_float_0_0, 0), (self.blocks_float_to_complex_0_0, 0))
205
        self.connect((self.blocks_short_to_float_0_0, 0), (self.blocks_float_to_complex_0_0, 0))
206
        self.connect((self.blocks_short_to_float_1_0, 0), (self.blocks_float_to_complex_0_0, 1))
206
        self.connect((self.blocks_short_to_float_1_0, 0), (self.blocks_float_to_complex_0_0, 1))
207
        self.connect((self.blocks_vector_to_streams_0, 0), (self.blocks_short_to_float_2, 0))
207
        self.connect((self.blocks_vector_to_streams_0, 0), (self.blocks_short_to_float_2, 0))
208
        self.connect((self.blocks_vector_to_streams_0, 1), (self.blocks_short_to_float_2_0, 0))
208
        self.connect((self.blocks_vector_to_streams_0, 1), (self.blocks_short_to_float_2_0, 0))
209
        self.connect((self.blocks_short_to_float_2, 0), (self.wxgui_scopesink2_1, 0))
209
        self.connect((self.blocks_short_to_float_2, 0), (self.wxgui_scopesink2_1, 0))
210
        self.connect((self.blocks_short_to_float_2_0, 0), (self.wxgui_scopesink2_1, 1))
210
        self.connect((self.blocks_short_to_float_2_0, 0), (self.wxgui_scopesink2_1, 1))
211
        self.connect((self.blocks_short_to_float_0_0, 0), (self.wxgui_scopesink2_0, 0))
211
        self.connect((self.blocks_short_to_float_0_0, 0), (self.wxgui_scopesink2_0, 0))
212
        self.connect((self.blocks_short_to_float_1_0, 0), (self.wxgui_scopesink2_0, 1))
212
        self.connect((self.blocks_short_to_float_1_0, 0), (self.wxgui_scopesink2_0, 1))
213
        self.connect((self.blocks_short_to_float_0, 0), (self.wxgui_scopesink2_0, 2))
213
        self.connect((self.blocks_short_to_float_0, 0), (self.wxgui_scopesink2_0, 2))
214
        self.connect((self.blocks_short_to_float_1, 0), (self.wxgui_scopesink2_0, 3))
214
        self.connect((self.blocks_short_to_float_1, 0), (self.wxgui_scopesink2_0, 3))
215
        self.connect((self.blocks_interleave_0_2, 0), (self.blocks_short_to_float_0_0, 0))
215
        self.connect((self.blocks_interleave_0_2, 0), (self.blocks_short_to_float_0_0, 0))
216
        self.connect((self.blocks_interleave_0_1, 0), (self.blocks_short_to_float_1_0, 0))
216
        self.connect((self.blocks_interleave_0_1, 0), (self.blocks_short_to_float_1_0, 0))
217
        self.connect((self.blocks_interleave_0_0, 0), (self.blocks_short_to_float_0, 0))
217
        self.connect((self.blocks_interleave_0_0, 0), (self.blocks_short_to_float_0, 0))
218
        self.connect((self.blocks_interleave_0, 0), (self.blocks_short_to_float_1, 0))
218
        self.connect((self.blocks_interleave_0, 0), (self.blocks_short_to_float_1, 0))
219
        self.connect((self.blocks_throttle_2, 0), (self.blocks_vector_to_streams_0, 0))
219
        self.connect((self.blocks_throttle_2, 0), (self.blocks_vector_to_streams_0, 0))
220
        self.connect((self.blocks_file_source_0, 0), (self.blocks_throttle_2, 0))
220
        self.connect((self.blocks_file_source_0, 0), (self.blocks_throttle_2, 0))
221
        self.connect((self.blocks_float_to_complex_0_0, 0), (self.dc_blocker_xx_0, 0))
221
        self.connect((self.blocks_float_to_complex_0_0, 0), (self.dc_blocker_xx_0, 0))
222
        self.connect((self.dc_blocker_xx_0, 0), (self.wxgui_waterfallsink2_0_0, 0))
222
        self.connect((self.dc_blocker_xx_0, 0), (self.wxgui_waterfallsink2_0_0, 0))
223
        self.connect((self.blocks_float_to_complex_0, 0), (self.dc_blocker_xx_1, 0))
223
        self.connect((self.blocks_float_to_complex_0, 0), (self.dc_blocker_xx_1, 0))
224
        self.connect((self.blocks_float_to_complex_0_0, 0), (self.wxgui_fftsink2_1, 0))
224
        self.connect((self.blocks_float_to_complex_0_0, 0), (self.wxgui_fftsink2_1, 0))
225
        self.connect((self.blocks_float_to_complex_0, 0), (self.wxgui_fftsink2_0, 0))
225
        self.connect((self.blocks_float_to_complex_0, 0), (self.wxgui_fftsink2_0, 0))
226
        self.connect((self.blocks_short_to_float_0, 0), (self.wxgui_numbersink2_1, 0))
226
        self.connect((self.blocks_short_to_float_0, 0), (self.wxgui_numbersink2_1, 0))
227
        self.connect((self.blocks_short_to_float_1, 0), (self.wxgui_numbersink2_0, 0))
227
        self.connect((self.blocks_short_to_float_1, 0), (self.wxgui_numbersink2_0, 0))
228
        self.connect((self.dc_blocker_xx_1, 0), (self.wxgui_waterfallsink2_0, 0))
228
        self.connect((self.dc_blocker_xx_1, 0), (self.wxgui_waterfallsink2_0, 0))
229
 
229
 
230
 
230
 
231
# QT sink close method reimplementation
231
# QT sink close method reimplementation
232
 
232
 
233
    def get_prefix(self):
233
    def get_prefix(self):
234
        return self.prefix
234
        return self.prefix
235
 
235
 
236
    def set_prefix(self, prefix):
236
    def set_prefix(self, prefix):
237
        self.prefix = prefix
237
        self.prefix = prefix
238
        self.set_recfile(self.prefix + datetime.now().strftime("%Y.%m.%d.%H.%M.%S") + ".dat")
238
        self.set_recfile(self.prefix + datetime.now().strftime("%Y.%m.%d.%H.%M.%S") + ".dat")
239
 
239
 
240
    def get_samp_rate(self):
240
    def get_samp_rate(self):
241
        return self.samp_rate
241
        return self.samp_rate
242
 
242
 
243
    def set_samp_rate(self, samp_rate):
243
    def set_samp_rate(self, samp_rate):
244
        self.samp_rate = samp_rate
244
        self.samp_rate = samp_rate
245
        self.blocks_throttle_2.set_sample_rate(self.samp_rate/2)
-
 
246
        self.wxgui_scopesink2_1.set_sample_rate(self.samp_rate/2)
245
        self.wxgui_scopesink2_1.set_sample_rate(self.samp_rate/2)
247
        self.wxgui_waterfallsink2_0_0.set_sample_rate(self.samp_rate)
246
        self.wxgui_waterfallsink2_0_0.set_sample_rate(self.samp_rate)
248
        self.wxgui_scopesink2_0.set_sample_rate(self.samp_rate)
247
        self.wxgui_scopesink2_0.set_sample_rate(self.samp_rate)
249
        self.wxgui_waterfallsink2_0.set_sample_rate(self.samp_rate)
248
        self.wxgui_waterfallsink2_0.set_sample_rate(self.samp_rate)
250
        self.wxgui_fftsink2_0.set_sample_rate(self.samp_rate)
249
        self.wxgui_fftsink2_0.set_sample_rate(self.samp_rate)
251
        self.wxgui_fftsink2_1.set_sample_rate(self.samp_rate)
250
        self.wxgui_fftsink2_1.set_sample_rate(self.samp_rate)
-
 
251
        self.blocks_throttle_2.set_sample_rate(self.samp_rate/2)
252
 
252
 
253
    def get_recfile(self):
253
    def get_recfile(self):
254
        return self.recfile
254
        return self.recfile
255
 
255
 
256
    def set_recfile(self, recfile):
256
    def set_recfile(self, recfile):
257
        self.recfile = recfile
257
        self.recfile = recfile
258
 
258
 
259
if __name__ == '__main__':
259
if __name__ == '__main__':
260
    import ctypes
260
    import ctypes
261
    import sys
261
    import sys
262
    if sys.platform.startswith('linux'):
262
    if sys.platform.startswith('linux'):
263
        try:
263
        try:
264
            x11 = ctypes.cdll.LoadLibrary('libX11.so')
264
            x11 = ctypes.cdll.LoadLibrary('libX11.so')
265
            x11.XInitThreads()
265
            x11.XInitThreads()
266
        except:
266
        except:
267
            print "Warning: failed to XInitThreads()"
267
            print "Warning: failed to XInitThreads()"
268
    parser = OptionParser(option_class=eng_option, usage="%prog: [options]")
268
    parser = OptionParser(option_class=eng_option, usage="%prog: [options]")
269
    (options, args) = parser.parse_args()
269
    (options, args) = parser.parse_args()
270
    tb = MLAB_ADC_Grabber()
270
    tb = MLAB_ADC_Grabber()
271
    tb.Start(True)
271
    tb.Start(True)
272
    tb.Wait()
272
    tb.Wait()
273
 
273