aboutsummaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorptrkrysik <ptrkrysik@gmail.com>2015-01-03 00:36:21 +0100
committerptrkrysik <ptrkrysik@gmail.com>2015-01-03 00:36:21 +0100
commit9032b87afe7ce3f5b0cdb0419ccb2ea4f5ff39bb (patch)
tree0bd525e27f1181043b5b3dc1901106b9c71b66c6 /apps
parent3b77654b8942b2e6e3676913e63b427ded008377 (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.grc1090
-rwxr-xr-xapps/airprobe_rtlsdr.py174
-rw-r--r--apps/airprobe_usrp.grc460
-rwxr-xr-xapps/airprobe_usrp.py116
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():