diff options
author | ptrkrysik <ptrkrysik@gmail.com> | 2015-01-03 00:36:21 +0100 |
---|---|---|
committer | ptrkrysik <ptrkrysik@gmail.com> | 2015-01-03 00:36:21 +0100 |
commit | 9032b87afe7ce3f5b0cdb0419ccb2ea4f5ff39bb (patch) | |
tree | 0bd525e27f1181043b5b3dc1901106b9c71b66c6 /apps | |
parent | 3b77654b8942b2e6e3676913e63b427ded008377 (diff) |
Added gain, fc (carrier frequency) and sample frequency parameters to the rtlsdr and usrp apps.
Diffstat (limited to 'apps')
-rw-r--r-- | apps/airprobe_rtlsdr.grc | 1090 | ||||
-rwxr-xr-x | apps/airprobe_rtlsdr.py | 174 | ||||
-rw-r--r-- | apps/airprobe_usrp.grc | 460 | ||||
-rwxr-xr-x | apps/airprobe_usrp.py | 116 |
4 files changed, 989 insertions, 851 deletions
diff --git a/apps/airprobe_rtlsdr.grc b/apps/airprobe_rtlsdr.grc index 56fbfed..a65bafd 100644 --- a/apps/airprobe_rtlsdr.grc +++ b/apps/airprobe_rtlsdr.grc @@ -26,7 +26,7 @@ </param> <param> <key>window_size</key> - <value>1280, 1024</value> + <value>2280, 1024</value> </param> <param> <key>generate_options</key> @@ -69,7 +69,7 @@ <key>variable</key> <param> <key>id</key> - <value>PCH</value> + <value>SDCCH</value> </param> <param> <key>_enabled</key> @@ -77,7 +77,7 @@ </param> <param> <key>value</key> - <value>5</value> + <value>6</value> </param> <param> <key>alias</key> @@ -85,7 +85,7 @@ </param> <param> <key>_coordinate</key> - <value>(1128, 11)</value> + <value>(1368, 11)</value> </param> <param> <key>_rotation</key> @@ -96,7 +96,7 @@ <key>variable</key> <param> <key>id</key> - <value>AGCH</value> + <value>BCCH</value> </param> <param> <key>_enabled</key> @@ -104,7 +104,34 @@ </param> <param> <key>value</key> - <value>4</value> + <value>1</value> + </param> + <param> + <key>alias</key> + <value></value> + </param> + <param> + <key>_coordinate</key> + <value>(1008, 11)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + </block> + <block> + <key>variable</key> + <param> + <key>id</key> + <value>CCCH</value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>value</key> + <value>2</value> </param> <param> <key>alias</key> @@ -112,7 +139,7 @@ </param> <param> <key>_coordinate</key> - <value>(1056, 11)</value> + <value>(1080, 11)</value> </param> <param> <key>_rotation</key> @@ -139,7 +166,7 @@ </param> <param> <key>_coordinate</key> - <value>(984, 11)</value> + <value>(1152, 11)</value> </param> <param> <key>_rotation</key> @@ -150,7 +177,7 @@ <key>variable</key> <param> <key>id</key> - <value>CCCH</value> + <value>AGCH</value> </param> <param> <key>_enabled</key> @@ -158,7 +185,7 @@ </param> <param> <key>value</key> - <value>2</value> + <value>4</value> </param> <param> <key>alias</key> @@ -166,7 +193,7 @@ </param> <param> <key>_coordinate</key> - <value>(912, 11)</value> + <value>(1224, 11)</value> </param> <param> <key>_rotation</key> @@ -177,7 +204,7 @@ <key>variable</key> <param> <key>id</key> - <value>BCCH</value> + <value>PCH</value> </param> <param> <key>_enabled</key> @@ -185,7 +212,7 @@ </param> <param> <key>value</key> - <value>1</value> + <value>5</value> </param> <param> <key>alias</key> @@ -193,7 +220,7 @@ </param> <param> <key>_coordinate</key> - <value>(840, 11)</value> + <value>(1296, 11)</value> </param> <param> <key>_rotation</key> @@ -220,7 +247,7 @@ </param> <param> <key>_coordinate</key> - <value>(696, 11)</value> + <value>(864, 11)</value> </param> <param> <key>_rotation</key> @@ -228,26 +255,50 @@ </param> </block> <block> - <key>variable</key> + <key>gsm_input</key> <param> <key>id</key> - <value>SDCCH</value> + <value>gsm_input_0</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> - <key>value</key> - <value>6</value> + <key>ppm</key> + <value>0</value> + </param> + <param> + <key>osr</key> + <value>4</value> + </param> + <param> + <key>fc</key> + <value>fc</value> + </param> + <param> + <key>samp_rate_in</key> + <value>samp_rate</value> </param> <param> <key>alias</key> <value></value> </param> <param> + <key>affinity</key> + <value></value> + </param> + <param> + <key>minoutbuf</key> + <value>0</value> + </param> + <param> + <key>maxoutbuf</key> + <value>0</value> + </param> + <param> <key>_coordinate</key> - <value>(1200, 11)</value> + <value>(280, 304)</value> </param> <param> <key>_rotation</key> @@ -255,26 +306,89 @@ </param> </block> <block> - <key>variable</key> + <key>gsm_clock_offset_control</key> <param> <key>id</key> - <value>samp_rate</value> + <value>gsm_clock_offset_control_0</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> - <key>value</key> - <value>2000000.052982</value> + <key>fc</key> + <value>fc</value> </param> <param> <key>alias</key> <value></value> </param> <param> + <key>affinity</key> + <value></value> + </param> + <param> + <key>minoutbuf</key> + <value>0</value> + </param> + <param> + <key>maxoutbuf</key> + <value>0</value> + </param> + <param> <key>_coordinate</key> - <value>(16, 83)</value> + <value>(344, 411)</value> + </param> + <param> + <key>_rotation</key> + <value>180</value> + </param> + </block> + <block> + <key>gsm_receiver</key> + <param> + <key>id</key> + <value>gsm_receiver_0</value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>osr</key> + <value>4</value> + </param> + <param> + <key>cell_allocation</key> + <value>[0]</value> + </param> + <param> + <key>tseq_nums</key> + <value>[]</value> + </param> + <param> + <key>num_streams</key> + <value>1</value> + </param> + <param> + <key>alias</key> + <value></value> + </param> + <param> + <key>affinity</key> + <value></value> + </param> + <param> + <key>minoutbuf</key> + <value>0</value> + </param> + <param> + <key>maxoutbuf</key> + <value>0</value> + </param> + <param> + <key>_coordinate</key> + <value>(464, 288)</value> </param> <param> <key>_rotation</key> @@ -282,58 +396,132 @@ </param> </block> <block> - <key>variable_qtgui_range</key> + <key>gsm_universal_ctrl_chans_demapper</key> <param> <key>id</key> - <value>g</value> + <value>gsm_universal_ctrl_chans_demapper_0</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> - <key>label</key> - <value>Gain</value> + <key>starts_fn_mod51</key> + <value>[2,6,12,16,22,26,32,36,42,46]</value> </param> <param> - <key>value</key> - <value>43</value> + <key>channel_types</key> + <value>[BCCH,CCCH,CCCH,CCCH,CCCH,CCCH,CCCH,CCCH,CCCH,CCCH]</value> </param> <param> - <key>start</key> + <key>alias</key> + <value></value> + </param> + <param> + <key>affinity</key> + <value></value> + </param> + <param> + <key>minoutbuf</key> <value>0</value> </param> <param> - <key>stop</key> - <value>50</value> + <key>maxoutbuf</key> + <value>0</value> </param> <param> - <key>step</key> - <value>0.5</value> + <key>_coordinate</key> + <value>(656, 288)</value> </param> <param> - <key>widget</key> - <value>counter</value> + <key>_rotation</key> + <value>0</value> </param> + </block> + <block> + <key>gsm_control_channels_decoder</key> <param> - <key>orient</key> - <value>Qt.Horizontal</value> + <key>id</key> + <value>gsm_control_channels_decoder_0</value> </param> <param> - <key>min_len</key> - <value>100</value> + <key>_enabled</key> + <value>True</value> </param> <param> - <key>gui_hint</key> + <key>alias</key> + <value></value> + </param> + <param> + <key>affinity</key> <value></value> </param> <param> + <key>minoutbuf</key> + <value>0</value> + </param> + <param> + <key>maxoutbuf</key> + <value>0</value> + </param> + <param> + <key>_coordinate</key> + <value>(912, 288)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + </block> + <block> + <key>blocks_socket_pdu</key> + <param> + <key>id</key> + <value>blocks_socket_pdu_0</value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>type</key> + <value>"UDP_CLIENT"</value> + </param> + <param> + <key>host</key> + <value>127.0.0.1</value> + </param> + <param> + <key>port</key> + <value>4729</value> + </param> + <param> + <key>mtu</key> + <value>10000</value> + </param> + <param> + <key>tcp_no_delay</key> + <value>False</value> + </param> + <param> <key>alias</key> <value></value> </param> <param> + <key>affinity</key> + <value></value> + </param> + <param> + <key>minoutbuf</key> + <value>0</value> + </param> + <param> + <key>maxoutbuf</key> + <value>0</value> + </param> + <param> <key>_coordinate</key> - <value>(192, 11)</value> + <value>(1152, 363)</value> </param> <param> <key>_rotation</key> @@ -341,32 +529,287 @@ </param> </block> <block> - <key>gsm_input</key> + <key>gsm_message_printer</key> <param> <key>id</key> - <value>gsm_input_0</value> + <value>gsm_message_printer_1</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> - <key>ppm</key> + <key>prepend_string</key> + <value>""</value> + </param> + <param> + <key>alias</key> + <value></value> + </param> + <param> + <key>affinity</key> + <value></value> + </param> + <param> + <key>_coordinate</key> + <value>(1152, 288)</value> + </param> + <param> + <key>_rotation</key> <value>0</value> </param> + </block> + <block> + <key>qtgui_freq_sink_x</key> <param> - <key>osr</key> - <value>4</value> + <key>id</key> + <value>qtgui_freq_sink_x_0</value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>type</key> + <value>complex</value> + </param> + <param> + <key>name</key> + <value>""</value> + </param> + <param> + <key>fftsize</key> + <value>1024</value> + </param> + <param> + <key>freqhalf</key> + <value>True</value> + </param> + <param> + <key>wintype</key> + <value>firdes.WIN_BLACKMAN_hARRIS</value> </param> <param> <key>fc</key> <value>fc</value> </param> <param> - <key>samp_rate_in</key> + <key>bw</key> <value>samp_rate</value> </param> <param> + <key>grid</key> + <value>False</value> + </param> + <param> + <key>autoscale</key> + <value>False</value> + </param> + <param> + <key>average</key> + <value>1.0</value> + </param> + <param> + <key>ymin</key> + <value>-140</value> + </param> + <param> + <key>ymax</key> + <value>10</value> + </param> + <param> + <key>nconnections</key> + <value>1</value> + </param> + <param> + <key>update_time</key> + <value>0.10</value> + </param> + <param> + <key>gui_hint</key> + <value></value> + </param> + <param> + <key>showports</key> + <value>True</value> + </param> + <param> + <key>tr_mode</key> + <value>qtgui.TRIG_MODE_FREE</value> + </param> + <param> + <key>tr_level</key> + <value>0.0</value> + </param> + <param> + <key>tr_chan</key> + <value>0</value> + </param> + <param> + <key>tr_tag</key> + <value>""</value> + </param> + <param> + <key>label1</key> + <value></value> + </param> + <param> + <key>width1</key> + <value>1</value> + </param> + <param> + <key>color1</key> + <value>"blue"</value> + </param> + <param> + <key>alpha1</key> + <value>1.0</value> + </param> + <param> + <key>label2</key> + <value></value> + </param> + <param> + <key>width2</key> + <value>1</value> + </param> + <param> + <key>color2</key> + <value>"red"</value> + </param> + <param> + <key>alpha2</key> + <value>1.0</value> + </param> + <param> + <key>label3</key> + <value></value> + </param> + <param> + <key>width3</key> + <value>1</value> + </param> + <param> + <key>color3</key> + <value>"green"</value> + </param> + <param> + <key>alpha3</key> + <value>1.0</value> + </param> + <param> + <key>label4</key> + <value></value> + </param> + <param> + <key>width4</key> + <value>1</value> + </param> + <param> + <key>color4</key> + <value>"black"</value> + </param> + <param> + <key>alpha4</key> + <value>1.0</value> + </param> + <param> + <key>label5</key> + <value></value> + </param> + <param> + <key>width5</key> + <value>1</value> + </param> + <param> + <key>color5</key> + <value>"cyan"</value> + </param> + <param> + <key>alpha5</key> + <value>1.0</value> + </param> + <param> + <key>label6</key> + <value></value> + </param> + <param> + <key>width6</key> + <value>1</value> + </param> + <param> + <key>color6</key> + <value>"magenta"</value> + </param> + <param> + <key>alpha6</key> + <value>1.0</value> + </param> + <param> + <key>label7</key> + <value></value> + </param> + <param> + <key>width7</key> + <value>1</value> + </param> + <param> + <key>color7</key> + <value>"yellow"</value> + </param> + <param> + <key>alpha7</key> + <value>1.0</value> + </param> + <param> + <key>label8</key> + <value></value> + </param> + <param> + <key>width8</key> + <value>1</value> + </param> + <param> + <key>color8</key> + <value>"dark red"</value> + </param> + <param> + <key>alpha8</key> + <value>1.0</value> + </param> + <param> + <key>label9</key> + <value></value> + </param> + <param> + <key>width9</key> + <value>1</value> + </param> + <param> + <key>color9</key> + <value>"dark green"</value> + </param> + <param> + <key>alpha9</key> + <value>1.0</value> + </param> + <param> + <key>label10</key> + <value></value> + </param> + <param> + <key>width10</key> + <value>1</value> + </param> + <param> + <key>color10</key> + <value>"dark blue"</value> + </param> + <param> + <key>alpha10</key> + <value>1.0</value> + </param> + <param> <key>alias</key> <value></value> </param> @@ -384,7 +827,7 @@ </param> <param> <key>_coordinate</key> - <value>(280, 304)</value> + <value>(280, 187)</value> </param> <param> <key>_rotation</key> @@ -491,11 +934,11 @@ </param> <param> <key>freq0</key> - <value>fc</value> + <value>fc_slider</value> </param> <param> <key>corr0</key> - <value>ppm</value> + <value>ppm_slider</value> </param> <param> <key>dc_offset_mode0</key> @@ -511,7 +954,7 @@ </param> <param> <key>gain0</key> - <value>g</value> + <value>g_slider</value> </param> <param> <key>if_gain0</key> @@ -1795,274 +2238,58 @@ </param> </block> <block> - <key>qtgui_freq_sink_x</key> + <key>variable_qtgui_range</key> <param> <key>id</key> - <value>qtgui_freq_sink_x_0</value> + <value>ppm_slider</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> - <key>type</key> - <value>complex</value> - </param> - <param> - <key>name</key> - <value>""</value> - </param> - <param> - <key>fftsize</key> - <value>1024</value> - </param> - <param> - <key>freqhalf</key> - <value>True</value> - </param> - <param> - <key>wintype</key> - <value>firdes.WIN_BLACKMAN_hARRIS</value> - </param> - <param> - <key>fc</key> - <value>fc</value> - </param> - <param> - <key>bw</key> - <value>samp_rate</value> - </param> - <param> - <key>grid</key> - <value>False</value> - </param> - <param> - <key>autoscale</key> - <value>False</value> - </param> - <param> - <key>average</key> - <value>1.0</value> - </param> - <param> - <key>ymin</key> - <value>-140</value> - </param> - <param> - <key>ymax</key> - <value>10</value> - </param> - <param> - <key>nconnections</key> - <value>1</value> - </param> - <param> - <key>update_time</key> - <value>0.10</value> - </param> - <param> - <key>gui_hint</key> - <value></value> - </param> - <param> - <key>showports</key> - <value>True</value> - </param> - <param> - <key>tr_mode</key> - <value>qtgui.TRIG_MODE_FREE</value> - </param> - <param> - <key>tr_level</key> - <value>0.0</value> - </param> - <param> - <key>tr_chan</key> - <value>0</value> - </param> - <param> - <key>tr_tag</key> - <value>""</value> - </param> - <param> - <key>label1</key> - <value></value> - </param> - <param> - <key>width1</key> - <value>1</value> - </param> - <param> - <key>color1</key> - <value>"blue"</value> - </param> - <param> - <key>alpha1</key> - <value>1.0</value> - </param> - <param> - <key>label2</key> - <value></value> - </param> - <param> - <key>width2</key> - <value>1</value> - </param> - <param> - <key>color2</key> - <value>"red"</value> - </param> - <param> - <key>alpha2</key> - <value>1.0</value> - </param> - <param> - <key>label3</key> - <value></value> - </param> - <param> - <key>width3</key> - <value>1</value> - </param> - <param> - <key>color3</key> - <value>"green"</value> - </param> - <param> - <key>alpha3</key> - <value>1.0</value> - </param> - <param> - <key>label4</key> - <value></value> - </param> - <param> - <key>width4</key> - <value>1</value> - </param> - <param> - <key>color4</key> - <value>"black"</value> - </param> - <param> - <key>alpha4</key> - <value>1.0</value> - </param> - <param> - <key>label5</key> - <value></value> - </param> - <param> - <key>width5</key> - <value>1</value> - </param> - <param> - <key>color5</key> - <value>"cyan"</value> - </param> - <param> - <key>alpha5</key> - <value>1.0</value> - </param> - <param> - <key>label6</key> - <value></value> - </param> - <param> - <key>width6</key> - <value>1</value> - </param> - <param> - <key>color6</key> - <value>"magenta"</value> - </param> - <param> - <key>alpha6</key> - <value>1.0</value> - </param> - <param> - <key>label7</key> - <value></value> - </param> - <param> - <key>width7</key> - <value>1</value> + <key>label</key> + <value>PPM Offset</value> </param> <param> - <key>color7</key> - <value>"yellow"</value> + <key>value</key> + <value>ppm</value> </param> <param> - <key>alpha7</key> - <value>1.0</value> + <key>start</key> + <value>-150</value> </param> <param> - <key>label8</key> - <value></value> + <key>stop</key> + <value>150</value> </param> <param> - <key>width8</key> + <key>step</key> <value>1</value> </param> <param> - <key>color8</key> - <value>"dark red"</value> - </param> - <param> - <key>alpha8</key> - <value>1.0</value> - </param> - <param> - <key>label9</key> - <value></value> - </param> - <param> - <key>width9</key> - <value>1</value> + <key>widget</key> + <value>counter</value> </param> <param> - <key>color9</key> - <value>"dark green"</value> + <key>orient</key> + <value>Qt.Horizontal</value> </param> <param> - <key>alpha9</key> - <value>1.0</value> + <key>min_len</key> + <value>100</value> </param> <param> - <key>label10</key> + <key>gui_hint</key> <value></value> </param> <param> - <key>width10</key> - <value>1</value> - </param> - <param> - <key>color10</key> - <value>"dark blue"</value> - </param> - <param> - <key>alpha10</key> - <value>1.0</value> - </param> - <param> <key>alias</key> <value></value> </param> <param> - <key>affinity</key> - <value></value> - </param> - <param> - <key>minoutbuf</key> - <value>0</value> - </param> - <param> - <key>maxoutbuf</key> - <value>0</value> - </param> - <param> <key>_coordinate</key> - <value>(280, 187)</value> + <value>(440, 11)</value> </param> <param> <key>_rotation</key> @@ -2070,89 +2297,58 @@ </param> </block> <block> - <key>gsm_clock_offset_control</key> + <key>variable_qtgui_range</key> <param> <key>id</key> - <value>gsm_clock_offset_control_0</value> + <value>g_slider</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> - <key>fc</key> - <value>fc</value> - </param> - <param> - <key>alias</key> - <value></value> - </param> - <param> - <key>affinity</key> - <value></value> + <key>label</key> + <value>Gain</value> </param> <param> - <key>minoutbuf</key> - <value>0</value> + <key>value</key> + <value>gain</value> </param> <param> - <key>maxoutbuf</key> + <key>start</key> <value>0</value> </param> <param> - <key>_coordinate</key> - <value>(344, 411)</value> - </param> - <param> - <key>_rotation</key> - <value>180</value> - </param> - </block> - <block> - <key>gsm_receiver</key> - <param> - <key>id</key> - <value>gsm_receiver_0</value> - </param> - <param> - <key>_enabled</key> - <value>True</value> + <key>stop</key> + <value>50</value> </param> <param> - <key>osr</key> - <value>4</value> + <key>step</key> + <value>0.5</value> </param> <param> - <key>cell_allocation</key> - <value>[0]</value> + <key>widget</key> + <value>counter</value> </param> <param> - <key>tseq_nums</key> - <value>[]</value> + <key>orient</key> + <value>Qt.Horizontal</value> </param> <param> - <key>num_streams</key> - <value>1</value> + <key>min_len</key> + <value>100</value> </param> <param> - <key>alias</key> + <key>gui_hint</key> <value></value> </param> <param> - <key>affinity</key> + <key>alias</key> <value></value> </param> <param> - <key>minoutbuf</key> - <value>0</value> - </param> - <param> - <key>maxoutbuf</key> - <value>0</value> - </param> - <param> <key>_coordinate</key> - <value>(464, 288)</value> + <value>(192, 11)</value> </param> <param> <key>_rotation</key> @@ -2160,77 +2356,58 @@ </param> </block> <block> - <key>gsm_universal_ctrl_chans_demapper</key> + <key>variable_qtgui_range</key> <param> <key>id</key> - <value>gsm_universal_ctrl_chans_demapper_0</value> + <value>fc_slider</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> - <key>starts_fn_mod51</key> - <value>[2,6,12,16,22,26,32,36,42,46]</value> - </param> - <param> - <key>channel_types</key> - <value>[BCCH,CCCH,CCCH,CCCH,CCCH,CCCH,CCCH,CCCH,CCCH,CCCH]</value> + <key>label</key> + <value>Frequency</value> </param> <param> - <key>alias</key> - <value></value> + <key>value</key> + <value>fc</value> </param> <param> - <key>affinity</key> - <value></value> + <key>start</key> + <value>925e6</value> </param> <param> - <key>minoutbuf</key> - <value>0</value> + <key>stop</key> + <value>960e6</value> </param> <param> - <key>maxoutbuf</key> - <value>0</value> + <key>step</key> + <value>2e5</value> </param> <param> - <key>_coordinate</key> - <value>(656, 288)</value> + <key>widget</key> + <value>counter_slider</value> </param> <param> - <key>_rotation</key> - <value>0</value> - </param> - </block> - <block> - <key>gsm_control_channels_decoder</key> - <param> - <key>id</key> - <value>gsm_control_channels_decoder_0</value> + <key>orient</key> + <value>Qt.Horizontal</value> </param> <param> - <key>_enabled</key> - <value>True</value> + <key>min_len</key> + <value>100</value> </param> <param> - <key>alias</key> + <key>gui_hint</key> <value></value> </param> <param> - <key>affinity</key> + <key>alias</key> <value></value> </param> <param> - <key>minoutbuf</key> - <value>0</value> - </param> - <param> - <key>maxoutbuf</key> - <value>0</value> - </param> - <param> <key>_coordinate</key> - <value>(912, 288)</value> + <value>(304, 11)</value> </param> <param> <key>_rotation</key> @@ -2238,54 +2415,38 @@ </param> </block> <block> - <key>blocks_socket_pdu</key> + <key>parameter</key> <param> <key>id</key> - <value>blocks_socket_pdu_0</value> + <value>ppm</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> - <key>type</key> - <value>"UDP_CLIENT"</value> - </param> - <param> - <key>host</key> - <value>127.0.0.1</value> + <key>label</key> + <value>ppm</value> </param> <param> - <key>port</key> - <value>4729</value> + <key>value</key> + <value>0</value> </param> <param> - <key>mtu</key> - <value>10000</value> + <key>type</key> + <value>intx</value> </param> <param> - <key>tcp_no_delay</key> - <value>False</value> + <key>short_id</key> + <value>p</value> </param> <param> <key>alias</key> <value></value> </param> <param> - <key>affinity</key> - <value></value> - </param> - <param> - <key>minoutbuf</key> - <value>0</value> - </param> - <param> - <key>maxoutbuf</key> - <value>0</value> - </param> - <param> <key>_coordinate</key> - <value>(1152, 363)</value> + <value>(744, 11)</value> </param> <param> <key>_rotation</key> @@ -2293,7 +2454,7 @@ </param> </block> <block> - <key>variable_qtgui_range</key> + <key>parameter</key> <param> <key>id</key> <value>fc</value> @@ -2304,39 +2465,19 @@ </param> <param> <key>label</key> - <value>Frequency</value> + <value>fc</value> </param> <param> <key>value</key> <value>939.4e6</value> </param> <param> - <key>start</key> - <value>925e6</value> - </param> - <param> - <key>stop</key> - <value>960e6</value> - </param> - <param> - <key>step</key> - <value>2e5</value> - </param> - <param> - <key>widget</key> - <value>counter_slider</value> - </param> - <param> - <key>orient</key> - <value>Qt.Horizontal</value> - </param> - <param> - <key>min_len</key> - <value>100</value> + <key>type</key> + <value>eng_float</value> </param> <param> - <key>gui_hint</key> - <value></value> + <key>short_id</key> + <value>f</value> </param> <param> <key>alias</key> @@ -2344,7 +2485,7 @@ </param> <param> <key>_coordinate</key> - <value>(304, 11)</value> + <value>(648, 11)</value> </param> <param> <key>_rotation</key> @@ -2352,10 +2493,10 @@ </param> </block> <block> - <key>variable_qtgui_range</key> + <key>parameter</key> <param> <key>id</key> - <value>ppm</value> + <value>gain</value> </param> <param> <key>_enabled</key> @@ -2363,39 +2504,19 @@ </param> <param> <key>label</key> - <value>PPM Offset</value> + <value>gain</value> </param> <param> <key>value</key> - <value>ppm_param</value> + <value>30</value> </param> <param> - <key>start</key> - <value>-150</value> - </param> - <param> - <key>stop</key> - <value>150</value> - </param> - <param> - <key>step</key> - <value>1</value> - </param> - <param> - <key>widget</key> - <value>counter</value> - </param> - <param> - <key>orient</key> - <value>Qt.Horizontal</value> - </param> - <param> - <key>min_len</key> - <value>100</value> + <key>type</key> + <value>eng_float</value> </param> <param> - <key>gui_hint</key> - <value></value> + <key>short_id</key> + <value>g</value> </param> <param> <key>alias</key> @@ -2403,7 +2524,7 @@ </param> <param> <key>_coordinate</key> - <value>(440, 11)</value> + <value>(552, 11)</value> </param> <param> <key>_rotation</key> @@ -2414,7 +2535,7 @@ <key>parameter</key> <param> <key>id</key> - <value>ppm_param</value> + <value>samp_rate</value> </param> <param> <key>_enabled</key> @@ -2422,58 +2543,27 @@ </param> <param> <key>label</key> - <value>ppm</value> + <value>samp_rate</value> </param> <param> <key>value</key> - <value>0</value> + <value>2000000.052982</value> </param> <param> <key>type</key> - <value>intx</value> + <value>eng_float</value> </param> <param> <key>short_id</key> - <value>p</value> - </param> - <param> - <key>alias</key> - <value></value> - </param> - <param> - <key>_coordinate</key> - <value>(552, 27)</value> - </param> - <param> - <key>_rotation</key> - <value>0</value> - </param> - </block> - <block> - <key>gsm_message_printer</key> - <param> - <key>id</key> - <value>gsm_message_printer_1</value> - </param> - <param> - <key>_enabled</key> - <value>True</value> - </param> - <param> - <key>prepend_string</key> - <value>""</value> + <value>s</value> </param> <param> <key>alias</key> <value></value> </param> <param> - <key>affinity</key> - <value></value> - </param> - <param> <key>_coordinate</key> - <value>(1152, 288)</value> + <value>(16, 75)</value> </param> <param> <key>_rotation</key> diff --git a/apps/airprobe_rtlsdr.py b/apps/airprobe_rtlsdr.py index c1f816d..8423acd 100755 --- a/apps/airprobe_rtlsdr.py +++ b/apps/airprobe_rtlsdr.py @@ -2,7 +2,7 @@ ################################################## # Gnuradio Python Flow Graph # Title: Airprobe Rtlsdr -# Generated: Sat Jan 3 00:02:56 2015 +# Generated: Sat Jan 3 00:30:45 2015 ################################################## from PyQt4 import Qt @@ -25,7 +25,7 @@ import time from distutils.version import StrictVersion class airprobe_rtlsdr(gr.top_block, Qt.QWidget): - def __init__(self, ppm_param=0): + def __init__(self, ppm=0, fc=939.4e6, gain=30, samp_rate=2000000.052982): gr.top_block.__init__(self, "Airprobe Rtlsdr") Qt.QWidget.__init__(self) self.setWindowTitle("Airprobe Rtlsdr") @@ -52,15 +52,17 @@ class airprobe_rtlsdr(gr.top_block, Qt.QWidget): ################################################## # Parameters ################################################## - self.ppm_param = ppm_param + self.ppm = ppm + self.fc = fc + self.gain = gain + self.samp_rate = samp_rate ################################################## # Variables ################################################## - self.samp_rate = samp_rate = 2000000.052982 - self.ppm = ppm = ppm_param - self.g = g = 43 - self.fc = fc = 939.4e6 + self.ppm_slider = ppm_slider = ppm + self.g_slider = g_slider = gain + self.fc_slider = fc_slider = fc self.SDCCH = SDCCH = 6 self.RACH = RACH = 3 self.PCH = PCH = 5 @@ -72,69 +74,69 @@ class airprobe_rtlsdr(gr.top_block, Qt.QWidget): ################################################## # Blocks ################################################## - self._ppm_layout = Qt.QHBoxLayout() - self._ppm_layout.addWidget(Qt.QLabel("PPM Offset"+": ")) + self._ppm_slider_layout = Qt.QHBoxLayout() + self._ppm_slider_layout.addWidget(Qt.QLabel("PPM Offset"+": ")) class qwt_counter_pyslot(Qwt.QwtCounter): def __init__(self, parent=None): Qwt.QwtCounter.__init__(self, parent) @pyqtSlot('double') def setValue(self, value): super(Qwt.QwtCounter, self).setValue(value) - self._ppm_counter = qwt_counter_pyslot() - self._ppm_counter.setRange(-150, 150, 1) - self._ppm_counter.setNumButtons(2) - self._ppm_counter.setMinimumWidth(100) - self._ppm_counter.setValue(self.ppm) - self._ppm_layout.addWidget(self._ppm_counter) - self._ppm_counter.valueChanged.connect(self.set_ppm) - self.top_layout.addLayout(self._ppm_layout) - self._g_layout = Qt.QHBoxLayout() - self._g_layout.addWidget(Qt.QLabel("Gain"+": ")) + self._ppm_slider_counter = qwt_counter_pyslot() + self._ppm_slider_counter.setRange(-150, 150, 1) + self._ppm_slider_counter.setNumButtons(2) + self._ppm_slider_counter.setMinimumWidth(100) + self._ppm_slider_counter.setValue(self.ppm_slider) + self._ppm_slider_layout.addWidget(self._ppm_slider_counter) + self._ppm_slider_counter.valueChanged.connect(self.set_ppm_slider) + self.top_layout.addLayout(self._ppm_slider_layout) + self._g_slider_layout = Qt.QHBoxLayout() + self._g_slider_layout.addWidget(Qt.QLabel("Gain"+": ")) class qwt_counter_pyslot(Qwt.QwtCounter): def __init__(self, parent=None): Qwt.QwtCounter.__init__(self, parent) @pyqtSlot('double') def setValue(self, value): super(Qwt.QwtCounter, self).setValue(value) - self._g_counter = qwt_counter_pyslot() - self._g_counter.setRange(0, 50, 0.5) - self._g_counter.setNumButtons(2) - self._g_counter.setMinimumWidth(100) - self._g_counter.setValue(self.g) - self._g_layout.addWidget(self._g_counter) - self._g_counter.valueChanged.connect(self.set_g) - self.top_layout.addLayout(self._g_layout) - self._fc_layout = Qt.QVBoxLayout() - self._fc_tool_bar = Qt.QToolBar(self) - self._fc_layout.addWidget(self._fc_tool_bar) - self._fc_tool_bar.addWidget(Qt.QLabel("Frequency"+": ")) + self._g_slider_counter = qwt_counter_pyslot() + self._g_slider_counter.setRange(0, 50, 0.5) + self._g_slider_counter.setNumButtons(2) + self._g_slider_counter.setMinimumWidth(100) + self._g_slider_counter.setValue(self.g_slider) + self._g_slider_layout.addWidget(self._g_slider_counter) + self._g_slider_counter.valueChanged.connect(self.set_g_slider) + self.top_layout.addLayout(self._g_slider_layout) + self._fc_slider_layout = Qt.QVBoxLayout() + self._fc_slider_tool_bar = Qt.QToolBar(self) + self._fc_slider_layout.addWidget(self._fc_slider_tool_bar) + self._fc_slider_tool_bar.addWidget(Qt.QLabel("Frequency"+": ")) class qwt_counter_pyslot(Qwt.QwtCounter): def __init__(self, parent=None): Qwt.QwtCounter.__init__(self, parent) @pyqtSlot('double') def setValue(self, value): super(Qwt.QwtCounter, self).setValue(value) - self._fc_counter = qwt_counter_pyslot() - self._fc_counter.setRange(925e6, 960e6, 2e5) - self._fc_counter.setNumButtons(2) - self._fc_counter.setValue(self.fc) - self._fc_tool_bar.addWidget(self._fc_counter) - self._fc_counter.valueChanged.connect(self.set_fc) - self._fc_slider = Qwt.QwtSlider(None, Qt.Qt.Horizontal, Qwt.QwtSlider.BottomScale, Qwt.QwtSlider.BgSlot) - self._fc_slider.setRange(925e6, 960e6, 2e5) - self._fc_slider.setValue(self.fc) - self._fc_slider.setMinimumWidth(100) - self._fc_slider.valueChanged.connect(self.set_fc) - self._fc_layout.addWidget(self._fc_slider) - self.top_layout.addLayout(self._fc_layout) + self._fc_slider_counter = qwt_counter_pyslot() + self._fc_slider_counter.setRange(925e6, 960e6, 2e5) + self._fc_slider_counter.setNumButtons(2) + self._fc_slider_counter.setValue(self.fc_slider) + self._fc_slider_tool_bar.addWidget(self._fc_slider_counter) + self._fc_slider_counter.valueChanged.connect(self.set_fc_slider) + self._fc_slider_slider = Qwt.QwtSlider(None, Qt.Qt.Horizontal, Qwt.QwtSlider.BottomScale, Qwt.QwtSlider.BgSlot) + self._fc_slider_slider.setRange(925e6, 960e6, 2e5) + self._fc_slider_slider.setValue(self.fc_slider) + self._fc_slider_slider.setMinimumWidth(100) + self._fc_slider_slider.valueChanged.connect(self.set_fc_slider) + self._fc_slider_layout.addWidget(self._fc_slider_slider) + self.top_layout.addLayout(self._fc_slider_layout) self.rtlsdr_source_0 = osmosdr.source( args="numchan=" + str(1) + " " + "" ) self.rtlsdr_source_0.set_sample_rate(samp_rate) - self.rtlsdr_source_0.set_center_freq(fc, 0) - self.rtlsdr_source_0.set_freq_corr(ppm, 0) + self.rtlsdr_source_0.set_center_freq(fc_slider, 0) + self.rtlsdr_source_0.set_freq_corr(ppm_slider, 0) self.rtlsdr_source_0.set_dc_offset_mode(2, 0) self.rtlsdr_source_0.set_iq_balance_mode(2, 0) self.rtlsdr_source_0.set_gain_mode(True, 0) - self.rtlsdr_source_0.set_gain(g, 0) + self.rtlsdr_source_0.set_gain(g_slider, 0) self.rtlsdr_source_0.set_if_gain(20, 0) self.rtlsdr_source_0.set_bb_gain(20, 0) self.rtlsdr_source_0.set_antenna("", 0) @@ -212,12 +214,28 @@ class airprobe_rtlsdr(gr.top_block, Qt.QWidget): self.settings.setValue("geometry", self.saveGeometry()) event.accept() - def get_ppm_param(self): - return self.ppm_param + def get_ppm(self): + return self.ppm + + def set_ppm(self, ppm): + self.ppm = ppm + self.set_ppm_slider(self.ppm) - def set_ppm_param(self, ppm_param): - self.ppm_param = ppm_param - self.set_ppm(self.ppm_param) + def get_fc(self): + return self.fc + + def set_fc(self, fc): + self.fc = fc + self.gsm_input_0.set_fc(self.fc) + self.qtgui_freq_sink_x_0.set_frequency_range(self.fc, self.samp_rate) + self.set_fc_slider(self.fc) + + def get_gain(self): + return self.gain + + def set_gain(self, gain): + self.gain = gain + self.set_g_slider(self.gain) def get_samp_rate(self): return self.samp_rate @@ -225,35 +243,33 @@ class airprobe_rtlsdr(gr.top_block, Qt.QWidget): def set_samp_rate(self, samp_rate): self.samp_rate = samp_rate self.gsm_input_0.set_samp_rate_in(self.samp_rate) - self.rtlsdr_source_0.set_sample_rate(self.samp_rate) self.qtgui_freq_sink_x_0.set_frequency_range(self.fc, self.samp_rate) + self.rtlsdr_source_0.set_sample_rate(self.samp_rate) - def get_ppm(self): - return self.ppm + def get_ppm_slider(self): + return self.ppm_slider - def set_ppm(self, ppm): - self.ppm = ppm - self.rtlsdr_source_0.set_freq_corr(self.ppm, 0) - Qt.QMetaObject.invokeMethod(self._ppm_counter, "setValue", Qt.Q_ARG("double", self.ppm)) + def set_ppm_slider(self, ppm_slider): + self.ppm_slider = ppm_slider + self.rtlsdr_source_0.set_freq_corr(self.ppm_slider, 0) + Qt.QMetaObject.invokeMethod(self._ppm_slider_counter, "setValue", Qt.Q_ARG("double", self.ppm_slider)) - def get_g(self): - return self.g + def get_g_slider(self): + return self.g_slider - def set_g(self, g): - self.g = g - Qt.QMetaObject.invokeMethod(self._g_counter, "setValue", Qt.Q_ARG("double", self.g)) - self.rtlsdr_source_0.set_gain(self.g, 0) + def set_g_slider(self, g_slider): + self.g_slider = g_slider + self.rtlsdr_source_0.set_gain(self.g_slider, 0) + Qt.QMetaObject.invokeMethod(self._g_slider_counter, "setValue", Qt.Q_ARG("double", self.g_slider)) - def get_fc(self): - return self.fc + def get_fc_slider(self): + return self.fc_slider - def set_fc(self, fc): - self.fc = fc - self.gsm_input_0.set_fc(self.fc) - self.rtlsdr_source_0.set_center_freq(self.fc, 0) - self.qtgui_freq_sink_x_0.set_frequency_range(self.fc, self.samp_rate) - Qt.QMetaObject.invokeMethod(self._fc_counter, "setValue", Qt.Q_ARG("double", self.fc)) - Qt.QMetaObject.invokeMethod(self._fc_slider, "setValue", Qt.Q_ARG("double", self.fc)) + def set_fc_slider(self, fc_slider): + self.fc_slider = fc_slider + self.rtlsdr_source_0.set_center_freq(self.fc_slider, 0) + Qt.QMetaObject.invokeMethod(self._fc_slider_counter, "setValue", Qt.Q_ARG("double", self.fc_slider)) + Qt.QMetaObject.invokeMethod(self._fc_slider_slider, "setValue", Qt.Q_ARG("double", self.fc_slider)) def get_SDCCH(self): return self.SDCCH @@ -307,13 +323,19 @@ if __name__ == '__main__': except: print "Warning: failed to XInitThreads()" parser = OptionParser(option_class=eng_option, usage="%prog: [options]") - parser.add_option("-p", "--ppm-param", dest="ppm_param", type="intx", default=0, + parser.add_option("-p", "--ppm", dest="ppm", type="intx", default=0, help="Set ppm [default=%default]") + parser.add_option("-f", "--fc", dest="fc", type="eng_float", default=eng_notation.num_to_str(939.4e6), + help="Set fc [default=%default]") + parser.add_option("-g", "--gain", dest="gain", type="eng_float", default=eng_notation.num_to_str(30), + help="Set gain [default=%default]") + parser.add_option("-s", "--samp-rate", dest="samp_rate", type="eng_float", default=eng_notation.num_to_str(2000000.052982), + help="Set samp_rate [default=%default]") (options, args) = parser.parse_args() if(StrictVersion(Qt.qVersion()) >= StrictVersion("4.5.0")): Qt.QApplication.setGraphicsSystem(gr.prefs().get_string('qtgui','style','raster')) qapp = Qt.QApplication(sys.argv) - tb = airprobe_rtlsdr(ppm_param=options.ppm_param) + tb = airprobe_rtlsdr(ppm=options.ppm, fc=options.fc, gain=options.gain, samp_rate=options.samp_rate) tb.start() tb.show() def quitting(): diff --git a/apps/airprobe_usrp.grc b/apps/airprobe_usrp.grc index 826c18d..08ec368 100644 --- a/apps/airprobe_usrp.grc +++ b/apps/airprobe_usrp.grc @@ -26,7 +26,7 @@ </param> <param> <key>window_size</key> - <value>1280, 1024</value> + <value>2280, 1024</value> </param> <param> <key>generate_options</key> @@ -69,33 +69,6 @@ <key>variable</key> <param> <key>id</key> - <value>samp_rate</value> - </param> - <param> - <key>_enabled</key> - <value>True</value> - </param> - <param> - <key>value</key> - <value>100e6/100</value> - </param> - <param> - <key>alias</key> - <value></value> - </param> - <param> - <key>_coordinate</key> - <value>(16, 99)</value> - </param> - <param> - <key>_rotation</key> - <value>0</value> - </param> - </block> - <block> - <key>variable</key> - <param> - <key>id</key> <value>CHANNEL_UNKNOWN</value> </param> <param> @@ -112,7 +85,7 @@ </param> <param> <key>_coordinate</key> - <value>(608, 11)</value> + <value>(632, 11)</value> </param> <param> <key>_rotation</key> @@ -123,7 +96,7 @@ <key>variable</key> <param> <key>id</key> - <value>BCCH</value> + <value>PCH</value> </param> <param> <key>_enabled</key> @@ -131,7 +104,7 @@ </param> <param> <key>value</key> - <value>1</value> + <value>5</value> </param> <param> <key>alias</key> @@ -139,7 +112,7 @@ </param> <param> <key>_coordinate</key> - <value>(752, 11)</value> + <value>(1064, 11)</value> </param> <param> <key>_rotation</key> @@ -150,7 +123,7 @@ <key>variable</key> <param> <key>id</key> - <value>CCCH</value> + <value>RACH</value> </param> <param> <key>_enabled</key> @@ -158,7 +131,7 @@ </param> <param> <key>value</key> - <value>2</value> + <value>3</value> </param> <param> <key>alias</key> @@ -166,7 +139,7 @@ </param> <param> <key>_coordinate</key> - <value>(824, 11)</value> + <value>(920, 11)</value> </param> <param> <key>_rotation</key> @@ -177,7 +150,7 @@ <key>variable</key> <param> <key>id</key> - <value>SDCCH</value> + <value>AGCH</value> </param> <param> <key>_enabled</key> @@ -185,7 +158,7 @@ </param> <param> <key>value</key> - <value>6</value> + <value>4</value> </param> <param> <key>alias</key> @@ -193,7 +166,7 @@ </param> <param> <key>_coordinate</key> - <value>(1112, 11)</value> + <value>(992, 11)</value> </param> <param> <key>_rotation</key> @@ -204,7 +177,7 @@ <key>variable</key> <param> <key>id</key> - <value>AGCH</value> + <value>CCCH</value> </param> <param> <key>_enabled</key> @@ -212,7 +185,7 @@ </param> <param> <key>value</key> - <value>4</value> + <value>2</value> </param> <param> <key>alias</key> @@ -220,7 +193,7 @@ </param> <param> <key>_coordinate</key> - <value>(968, 11)</value> + <value>(848, 11)</value> </param> <param> <key>_rotation</key> @@ -231,7 +204,7 @@ <key>variable</key> <param> <key>id</key> - <value>RACH</value> + <value>BCCH</value> </param> <param> <key>_enabled</key> @@ -239,7 +212,7 @@ </param> <param> <key>value</key> - <value>3</value> + <value>1</value> </param> <param> <key>alias</key> @@ -247,7 +220,7 @@ </param> <param> <key>_coordinate</key> - <value>(896, 11)</value> + <value>(776, 11)</value> </param> <param> <key>_rotation</key> @@ -258,7 +231,7 @@ <key>variable</key> <param> <key>id</key> - <value>PCH</value> + <value>SDCCH</value> </param> <param> <key>_enabled</key> @@ -266,7 +239,7 @@ </param> <param> <key>value</key> - <value>5</value> + <value>6</value> </param> <param> <key>alias</key> @@ -274,7 +247,7 @@ </param> <param> <key>_coordinate</key> - <value>(1040, 11)</value> + <value>(1136, 11)</value> </param> <param> <key>_rotation</key> @@ -415,124 +388,6 @@ </param> </block> <block> - <key>variable_qtgui_range</key> - <param> - <key>id</key> - <value>g</value> - </param> - <param> - <key>_enabled</key> - <value>True</value> - </param> - <param> - <key>label</key> - <value>Gain</value> - </param> - <param> - <key>value</key> - <value>30</value> - </param> - <param> - <key>start</key> - <value>0</value> - </param> - <param> - <key>stop</key> - <value>50</value> - </param> - <param> - <key>step</key> - <value>0.5</value> - </param> - <param> - <key>widget</key> - <value>counter</value> - </param> - <param> - <key>orient</key> - <value>Qt.Horizontal</value> - </param> - <param> - <key>min_len</key> - <value>100</value> - </param> - <param> - <key>gui_hint</key> - <value></value> - </param> - <param> - <key>alias</key> - <value></value> - </param> - <param> - <key>_coordinate</key> - <value>(192, 11)</value> - </param> - <param> - <key>_rotation</key> - <value>0</value> - </param> - </block> - <block> - <key>variable_qtgui_range</key> - <param> - <key>id</key> - <value>ppm</value> - </param> - <param> - <key>_enabled</key> - <value>False</value> - </param> - <param> - <key>label</key> - <value>PPM Offset</value> - </param> - <param> - <key>value</key> - <value>84</value> - </param> - <param> - <key>start</key> - <value>-100</value> - </param> - <param> - <key>stop</key> - <value>100</value> - </param> - <param> - <key>step</key> - <value>1</value> - </param> - <param> - <key>widget</key> - <value>counter</value> - </param> - <param> - <key>orient</key> - <value>Qt.Horizontal</value> - </param> - <param> - <key>min_len</key> - <value>100</value> - </param> - <param> - <key>gui_hint</key> - <value></value> - </param> - <param> - <key>alias</key> - <value></value> - </param> - <param> - <key>_coordinate</key> - <value>(440, 11)</value> - </param> - <param> - <key>_rotation</key> - <value>0</value> - </param> - </block> - <block> <key>gsm_input</key> <param> <key>id</key> @@ -869,6 +724,10 @@ <value>True</value> </param> <param> + <key>prepend_string</key> + <value></value> + </param> + <param> <key>alias</key> <value></value> </param> @@ -937,6 +796,202 @@ </param> </block> <block> + <key>variable_qtgui_range</key> + <param> + <key>id</key> + <value>g_slider</value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>label</key> + <value>Gain</value> + </param> + <param> + <key>value</key> + <value>gain</value> + </param> + <param> + <key>start</key> + <value>0</value> + </param> + <param> + <key>stop</key> + <value>50</value> + </param> + <param> + <key>step</key> + <value>0.5</value> + </param> + <param> + <key>widget</key> + <value>counter</value> + </param> + <param> + <key>orient</key> + <value>Qt.Horizontal</value> + </param> + <param> + <key>min_len</key> + <value>100</value> + </param> + <param> + <key>gui_hint</key> + <value></value> + </param> + <param> + <key>alias</key> + <value></value> + </param> + <param> + <key>_coordinate</key> + <value>(176, 11)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + </block> + <block> + <key>variable_qtgui_range</key> + <param> + <key>id</key> + <value>fc_slider</value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>label</key> + <value>Frequency</value> + </param> + <param> + <key>value</key> + <value>fc</value> + </param> + <param> + <key>start</key> + <value>925e6</value> + </param> + <param> + <key>stop</key> + <value>960e6</value> + </param> + <param> + <key>step</key> + <value>2e5</value> + </param> + <param> + <key>widget</key> + <value>counter_slider</value> + </param> + <param> + <key>orient</key> + <value>Qt.Horizontal</value> + </param> + <param> + <key>min_len</key> + <value>100</value> + </param> + <param> + <key>gui_hint</key> + <value></value> + </param> + <param> + <key>alias</key> + <value></value> + </param> + <param> + <key>_coordinate</key> + <value>(288, 11)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + </block> + <block> + <key>parameter</key> + <param> + <key>id</key> + <value>gain</value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>label</key> + <value>gain</value> + </param> + <param> + <key>value</key> + <value>30</value> + </param> + <param> + <key>type</key> + <value>eng_float</value> + </param> + <param> + <key>short_id</key> + <value>g</value> + </param> + <param> + <key>alias</key> + <value></value> + </param> + <param> + <key>_coordinate</key> + <value>(424, 11)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + </block> + <block> + <key>parameter</key> + <param> + <key>id</key> + <value>fc</value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>label</key> + <value>fc</value> + </param> + <param> + <key>value</key> + <value>939.4e6</value> + </param> + <param> + <key>type</key> + <value>eng_float</value> + </param> + <param> + <key>short_id</key> + <value>f</value> + </param> + <param> + <key>alias</key> + <value></value> + </param> + <param> + <key>_coordinate</key> + <value>(504, 11)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + </block> + <block> <key>uhd_usrp_source</key> <param> <key>id</key> @@ -1088,11 +1143,11 @@ </param> <param> <key>center_freq0</key> - <value>fc</value> + <value>fc_slider</value> </param> <param> <key>gain0</key> - <value>g</value> + <value>g_slider</value> </param> <param> <key>ant0</key> @@ -1624,37 +1679,10 @@ </param> </block> <block> - <key>blocks_message_debug</key> + <key>parameter</key> <param> <key>id</key> - <value>blocks_message_debug_0</value> - </param> - <param> - <key>_enabled</key> - <value>True</value> - </param> - <param> - <key>alias</key> - <value></value> - </param> - <param> - <key>affinity</key> - <value></value> - </param> - <param> - <key>_coordinate</key> - <value>(672, 400)</value> - </param> - <param> - <key>_rotation</key> - <value>0</value> - </param> - </block> - <block> - <key>variable_qtgui_range</key> - <param> - <key>id</key> - <value>fc</value> + <value>samp_rate</value> </param> <param> <key>_enabled</key> @@ -1662,39 +1690,19 @@ </param> <param> <key>label</key> - <value>Frequency</value> + <value>samp_rate</value> </param> <param> <key>value</key> - <value>1869e6</value> + <value>2000000.052982</value> </param> <param> - <key>start</key> - <value>1800e6</value> - </param> - <param> - <key>stop</key> - <value>1900e6</value> - </param> - <param> - <key>step</key> - <value>2e5</value> - </param> - <param> - <key>widget</key> - <value>counter_slider</value> - </param> - <param> - <key>orient</key> - <value>Qt.Horizontal</value> - </param> - <param> - <key>min_len</key> - <value>100</value> + <key>type</key> + <value>eng_float</value> </param> <param> - <key>gui_hint</key> - <value></value> + <key>short_id</key> + <value>s</value> </param> <param> <key>alias</key> @@ -1702,7 +1710,7 @@ </param> <param> <key>_coordinate</key> - <value>(304, 11)</value> + <value>(16, 83)</value> </param> <param> <key>_rotation</key> @@ -1751,10 +1759,4 @@ <source_key>C0</source_key> <sink_key>bursts</sink_key> </connection> - <connection> - <source_block_id>gsm_receiver_0</source_block_id> - <sink_block_id>blocks_message_debug_0</sink_block_id> - <source_key>measurements</source_key> - <sink_key>print</sink_key> - </connection> </flow_graph> diff --git a/apps/airprobe_usrp.py b/apps/airprobe_usrp.py index 63426a3..f87f8ee 100755 --- a/apps/airprobe_usrp.py +++ b/apps/airprobe_usrp.py @@ -2,7 +2,7 @@ ################################################## # Gnuradio Python Flow Graph # Title: Airprobe Usrp -# Generated: Sat Jan 3 00:02:32 2015 +# Generated: Sat Jan 3 00:30:50 2015 ################################################## from PyQt4 import Qt @@ -25,7 +25,7 @@ import time from distutils.version import StrictVersion class airprobe_usrp(gr.top_block, Qt.QWidget): - def __init__(self): + def __init__(self, samp_rate=2000000.052982, gain=30, fc=939.4e6): gr.top_block.__init__(self, "Airprobe Usrp") Qt.QWidget.__init__(self) self.setWindowTitle("Airprobe Usrp") @@ -50,11 +50,17 @@ class airprobe_usrp(gr.top_block, Qt.QWidget): ################################################## + # Parameters + ################################################## + self.samp_rate = samp_rate + self.gain = gain + self.fc = fc + + ################################################## # Variables ################################################## - self.samp_rate = samp_rate = 100e6/100 - self.g = g = 30 - self.fc = fc = 1869e6 + self.g_slider = g_slider = gain + self.fc_slider = fc_slider = fc self.SDCCH = SDCCH = 6 self.RACH = RACH = 3 self.PCH = PCH = 5 @@ -66,45 +72,45 @@ class airprobe_usrp(gr.top_block, Qt.QWidget): ################################################## # Blocks ################################################## - self._g_layout = Qt.QHBoxLayout() - self._g_layout.addWidget(Qt.QLabel("Gain"+": ")) + self._g_slider_layout = Qt.QHBoxLayout() + self._g_slider_layout.addWidget(Qt.QLabel("Gain"+": ")) class qwt_counter_pyslot(Qwt.QwtCounter): def __init__(self, parent=None): Qwt.QwtCounter.__init__(self, parent) @pyqtSlot('double') def setValue(self, value): super(Qwt.QwtCounter, self).setValue(value) - self._g_counter = qwt_counter_pyslot() - self._g_counter.setRange(0, 50, 0.5) - self._g_counter.setNumButtons(2) - self._g_counter.setMinimumWidth(100) - self._g_counter.setValue(self.g) - self._g_layout.addWidget(self._g_counter) - self._g_counter.valueChanged.connect(self.set_g) - self.top_layout.addLayout(self._g_layout) - self._fc_layout = Qt.QVBoxLayout() - self._fc_tool_bar = Qt.QToolBar(self) - self._fc_layout.addWidget(self._fc_tool_bar) - self._fc_tool_bar.addWidget(Qt.QLabel("Frequency"+": ")) + self._g_slider_counter = qwt_counter_pyslot() + self._g_slider_counter.setRange(0, 50, 0.5) + self._g_slider_counter.setNumButtons(2) + self._g_slider_counter.setMinimumWidth(100) + self._g_slider_counter.setValue(self.g_slider) + self._g_slider_layout.addWidget(self._g_slider_counter) + self._g_slider_counter.valueChanged.connect(self.set_g_slider) + self.top_layout.addLayout(self._g_slider_layout) + self._fc_slider_layout = Qt.QVBoxLayout() + self._fc_slider_tool_bar = Qt.QToolBar(self) + self._fc_slider_layout.addWidget(self._fc_slider_tool_bar) + self._fc_slider_tool_bar.addWidget(Qt.QLabel("Frequency"+": ")) class qwt_counter_pyslot(Qwt.QwtCounter): def __init__(self, parent=None): Qwt.QwtCounter.__init__(self, parent) @pyqtSlot('double') def setValue(self, value): super(Qwt.QwtCounter, self).setValue(value) - self._fc_counter = qwt_counter_pyslot() - self._fc_counter.setRange(1800e6, 1900e6, 2e5) - self._fc_counter.setNumButtons(2) - self._fc_counter.setValue(self.fc) - self._fc_tool_bar.addWidget(self._fc_counter) - self._fc_counter.valueChanged.connect(self.set_fc) - self._fc_slider = Qwt.QwtSlider(None, Qt.Qt.Horizontal, Qwt.QwtSlider.BottomScale, Qwt.QwtSlider.BgSlot) - self._fc_slider.setRange(1800e6, 1900e6, 2e5) - self._fc_slider.setValue(self.fc) - self._fc_slider.setMinimumWidth(100) - self._fc_slider.valueChanged.connect(self.set_fc) - self._fc_layout.addWidget(self._fc_slider) - self.top_layout.addLayout(self._fc_layout) + self._fc_slider_counter = qwt_counter_pyslot() + self._fc_slider_counter.setRange(925e6, 960e6, 2e5) + self._fc_slider_counter.setNumButtons(2) + self._fc_slider_counter.setValue(self.fc_slider) + self._fc_slider_tool_bar.addWidget(self._fc_slider_counter) + self._fc_slider_counter.valueChanged.connect(self.set_fc_slider) + self._fc_slider_slider = Qwt.QwtSlider(None, Qt.Qt.Horizontal, Qwt.QwtSlider.BottomScale, Qwt.QwtSlider.BgSlot) + self._fc_slider_slider.setRange(925e6, 960e6, 2e5) + self._fc_slider_slider.setValue(self.fc_slider) + self._fc_slider_slider.setMinimumWidth(100) + self._fc_slider_slider.valueChanged.connect(self.set_fc_slider) + self._fc_slider_layout.addWidget(self._fc_slider_slider) + self.top_layout.addLayout(self._fc_slider_layout) self.uhd_usrp_source_0 = uhd.usrp_source( ",".join(("addr=192.168.10.2", "")), uhd.stream_args( @@ -114,8 +120,8 @@ class airprobe_usrp(gr.top_block, Qt.QWidget): ) self.uhd_usrp_source_0.set_clock_source("internal", 0) self.uhd_usrp_source_0.set_samp_rate(samp_rate) - self.uhd_usrp_source_0.set_center_freq(fc, 0) - self.uhd_usrp_source_0.set_gain(g, 0) + self.uhd_usrp_source_0.set_center_freq(fc_slider, 0) + self.uhd_usrp_source_0.set_gain(g_slider, 0) self.qtgui_freq_sink_x_0 = qtgui.freq_sink_c( 1024, #size firdes.WIN_BLACKMAN_hARRIS, #wintype @@ -164,7 +170,6 @@ class airprobe_usrp(gr.top_block, Qt.QWidget): ) self.gsm_control_channels_decoder_0 = grgsm.control_channels_decoder() self.blocks_socket_pdu_0 = blocks.socket_pdu("UDP_CLIENT", "127.0.0.1", "4729", 10000, False) - self.blocks_message_debug_0 = blocks.message_debug() ################################################## # Connections @@ -180,7 +185,6 @@ class airprobe_usrp(gr.top_block, Qt.QWidget): self.msg_connect(self.gsm_control_channels_decoder_0, "msgs", self.blocks_socket_pdu_0, "pdus") self.msg_connect(self.gsm_universal_ctrl_chans_demapper_0, "bursts", self.gsm_control_channels_decoder_0, "bursts") self.msg_connect(self.gsm_receiver_0, "C0", self.gsm_universal_ctrl_chans_demapper_0, "bursts") - self.msg_connect(self.gsm_receiver_0, "measurements", self.blocks_message_debug_0, "print") def closeEvent(self, event): self.settings = Qt.QSettings("GNU Radio", "airprobe_usrp") @@ -196,13 +200,12 @@ class airprobe_usrp(gr.top_block, Qt.QWidget): self.qtgui_freq_sink_x_0.set_frequency_range(self.fc, self.samp_rate) self.uhd_usrp_source_0.set_samp_rate(self.samp_rate) - def get_g(self): - return self.g + def get_gain(self): + return self.gain - def set_g(self, g): - self.g = g - Qt.QMetaObject.invokeMethod(self._g_counter, "setValue", Qt.Q_ARG("double", self.g)) - self.uhd_usrp_source_0.set_gain(self.g, 0) + def set_gain(self, gain): + self.gain = gain + self.set_g_slider(self.gain) def get_fc(self): return self.fc @@ -211,9 +214,24 @@ class airprobe_usrp(gr.top_block, Qt.QWidget): self.fc = fc self.gsm_input_0.set_fc(self.fc) self.qtgui_freq_sink_x_0.set_frequency_range(self.fc, self.samp_rate) - self.uhd_usrp_source_0.set_center_freq(self.fc, 0) - Qt.QMetaObject.invokeMethod(self._fc_counter, "setValue", Qt.Q_ARG("double", self.fc)) - Qt.QMetaObject.invokeMethod(self._fc_slider, "setValue", Qt.Q_ARG("double", self.fc)) + self.set_fc_slider(self.fc) + + def get_g_slider(self): + return self.g_slider + + def set_g_slider(self, g_slider): + self.g_slider = g_slider + Qt.QMetaObject.invokeMethod(self._g_slider_counter, "setValue", Qt.Q_ARG("double", self.g_slider)) + self.uhd_usrp_source_0.set_gain(self.g_slider, 0) + + def get_fc_slider(self): + return self.fc_slider + + def set_fc_slider(self, fc_slider): + self.fc_slider = fc_slider + Qt.QMetaObject.invokeMethod(self._fc_slider_counter, "setValue", Qt.Q_ARG("double", self.fc_slider)) + Qt.QMetaObject.invokeMethod(self._fc_slider_slider, "setValue", Qt.Q_ARG("double", self.fc_slider)) + self.uhd_usrp_source_0.set_center_freq(self.fc_slider, 0) def get_SDCCH(self): return self.SDCCH @@ -267,11 +285,17 @@ if __name__ == '__main__': except: print "Warning: failed to XInitThreads()" parser = OptionParser(option_class=eng_option, usage="%prog: [options]") + parser.add_option("-s", "--samp-rate", dest="samp_rate", type="eng_float", default=eng_notation.num_to_str(2000000.052982), + help="Set samp_rate [default=%default]") + parser.add_option("-g", "--gain", dest="gain", type="eng_float", default=eng_notation.num_to_str(30), + help="Set gain [default=%default]") + parser.add_option("-f", "--fc", dest="fc", type="eng_float", default=eng_notation.num_to_str(939.4e6), + help="Set fc [default=%default]") (options, args) = parser.parse_args() if(StrictVersion(Qt.qVersion()) >= StrictVersion("4.5.0")): Qt.QApplication.setGraphicsSystem(gr.prefs().get_string('qtgui','style','raster')) qapp = Qt.QApplication(sys.argv) - tb = airprobe_usrp() + tb = airprobe_usrp(samp_rate=options.samp_rate, gain=options.gain, fc=options.fc) tb.start() tb.show() def quitting(): |