diff options
Diffstat (limited to 'gr-uhd')
26 files changed, 554 insertions, 334 deletions
diff --git a/gr-uhd/CMakeLists.txt b/gr-uhd/CMakeLists.txt index b0407cb8c8..30dcba141d 100644 --- a/gr-uhd/CMakeLists.txt +++ b/gr-uhd/CMakeLists.txt @@ -31,7 +31,7 @@ include(GrComponent) GR_REGISTER_COMPONENT("gr-uhd" ENABLE_GR_UHD Boost_FOUND UHD_FOUND - ENABLE_GR_CORE + ENABLE_GNURADIO_RUNTIME ENABLE_GR_FILTER ENABLE_GR_BLOCKS ENABLE_GR_ANALOG diff --git a/gr-uhd/apps/hf_explorer/hfx.py b/gr-uhd/apps/hf_explorer/hfx.py index 9e00805134..93d34c0977 100755 --- a/gr-uhd/apps/hf_explorer/hfx.py +++ b/gr-uhd/apps/hf_explorer/hfx.py @@ -255,7 +255,7 @@ class MyFrame(wx.Frame): self.tune_offset = 0 else: - self.src = gr.file_source (gr.sizeof_short,options.input_file) + self.src = blocks.file_source (gr.sizeof_short,options.input_file) self.tune_offset = 2200 # 2200 works for 3.5-4Mhz band # convert rf data in interleaved short int form to complex @@ -271,7 +271,7 @@ class MyFrame(wx.Frame): # save radio data to a file if SAVE_RADIO_TO_FILE: - radio_file = gr.file_sink(gr.sizeof_short, options.radio_file) + radio_file = blocks.file_sink(gr.sizeof_short, options.radio_file) self.tb.connect (self.src, radio_file) # 2nd DDC @@ -375,7 +375,7 @@ class MyFrame(wx.Frame): self.tb.connect(agc,dst) if SAVE_AUDIO_TO_FILE: - f_out = gr.file_sink(gr.sizeof_short,options.audio_file) + f_out = blocks.file_sink(gr.sizeof_short,options.audio_file) sc1 = blocks.multiply_const_ff(64000) f2s1 = blocks.float_to_short() self.tb.connect(agc,sc1,f2s1,f_out) diff --git a/gr-uhd/apps/uhd_rx_cfile b/gr-uhd/apps/uhd_rx_cfile index 62874771c1..5531bb35b8 100755 --- a/gr-uhd/apps/uhd_rx_cfile +++ b/gr-uhd/apps/uhd_rx_cfile @@ -1,6 +1,6 @@ #!/usr/bin/env python # -# Copyright 2012 Free Software Foundation, Inc. +# Copyright 2012,2013 Free Software Foundation, Inc. # # This file is part of GNU Radio # @@ -27,6 +27,7 @@ outputs single precision complex float values or complex short values """ from gnuradio import gr, gru, eng_notation +from gnuradio import blocks from gnuradio import uhd from gnuradio.eng_option import eng_option from optparse import OptionParser @@ -43,11 +44,11 @@ class rx_cfile_block(gr.top_block): if options.output_shorts: self._u = uhd.usrp_source(device_addr=options.args, stream_args=uhd.stream_args('sc16', options.wire_format, args=options.stream_args)) - self._sink = gr.file_sink(gr.sizeof_short*2, filename) + self._sink = blocks.file_sink(gr.sizeof_short*2, filename) else: self._u = uhd.usrp_source(device_addr=options.args, stream_args=uhd.stream_args('fc32', options.wire_format, args=options.stream_args)) - self._sink = gr.file_sink(gr.sizeof_gr_complex, filename) + self._sink = blocks.file_sink(gr.sizeof_gr_complex, filename) # Set the subdevice spec if(options.spec): @@ -82,9 +83,9 @@ class rx_cfile_block(gr.top_block): self.connect(self._u, self._sink) else: if options.output_shorts: - self._head = gr.head(gr.sizeof_short*2, int(options.nsamples)) + self._head = blocks.head(gr.sizeof_short*2, int(options.nsamples)) else: - self._head = gr.head(gr.sizeof_gr_complex, int(options.nsamples)) + self._head = blocks.head(gr.sizeof_gr_complex, int(options.nsamples)) self.connect(self._u, self._head, self._sink) diff --git a/gr-uhd/examples/c++/CMakeLists.txt b/gr-uhd/examples/c++/CMakeLists.txt index a6c9891d73..655ef0c0a9 100644 --- a/gr-uhd/examples/c++/CMakeLists.txt +++ b/gr-uhd/examples/c++/CMakeLists.txt @@ -23,8 +23,7 @@ include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ${GR_UHD_INCLUDE_DIRS} - ${GNURADIO_CORE_INCLUDE_DIRS} - ${GRUEL_INCLUDE_DIRS} + ${GNURADIO_RUNTIME_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${UHD_INCLUDE_DIRS} ) diff --git a/gr-uhd/examples/grc/uhd_const_wave.grc b/gr-uhd/examples/grc/uhd_const_wave.grc index c64721c833..46596109de 100644 --- a/gr-uhd/examples/grc/uhd_const_wave.grc +++ b/gr-uhd/examples/grc/uhd_const_wave.grc @@ -1,27 +1,59 @@ <?xml version='1.0' encoding='ASCII'?> <flow_graph> - <timestamp>Sat Oct 8 10:24:27 2011</timestamp> + <timestamp>Mon Mar 18 11:04:05 2013</timestamp> <block> - <key>const_source_x</key> + <key>options</key> <param> <key>id</key> - <value>const_source_x_0</value> + <value>uhd_const_wave</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> - <key>type</key> - <value>complex</value> + <key>title</key> + <value>UHD Constant Wave</value> </param> <param> - <key>const</key> - <value>ampl</value> + <key>author</key> + <value>Example</value> + </param> + <param> + <key>description</key> + <value>Tune UHD Device</value> + </param> + <param> + <key>window_size</key> + <value>1280, 1024</value> + </param> + <param> + <key>generate_options</key> + <value>wx_gui</value> + </param> + <param> + <key>category</key> + <value>Custom</value> + </param> + <param> + <key>run_options</key> + <value>prompt</value> + </param> + <param> + <key>run</key> + <value>True</value> + </param> + <param> + <key>max_nouts</key> + <value>0</value> + </param> + <param> + <key>realtime_scheduling</key> + <value></value> </param> <param> <key>_coordinate</key> - <value>(102, 193)</value> + <value>(10, 10)</value> </param> <param> <key>_rotation</key> @@ -194,54 +226,69 @@ </param> </block> <block> - <key>options</key> + <key>parameter</key> <param> <key>id</key> - <value>uhd_const_wave</value> + <value>address</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> - <key>title</key> - <value>UHD Constant Wave</value> + <key>label</key> + <value>IP Address</value> </param> <param> - <key>author</key> - <value>Example</value> + <key>value</key> + <value>addr=192.168.11.2</value> </param> <param> - <key>description</key> - <value>Tune UHD Device</value> + <key>type</key> + <value>string</value> </param> <param> - <key>window_size</key> - <value>1280, 1024</value> + <key>short_id</key> + <value>a</value> </param> <param> - <key>generate_options</key> - <value>wx_gui</value> + <key>_coordinate</key> + <value>(188, 12)</value> </param> <param> - <key>category</key> - <value>Custom</value> + <key>_rotation</key> + <value>0</value> </param> + </block> + <block> + <key>parameter</key> <param> - <key>run_options</key> - <value>prompt</value> + <key>id</key> + <value>samp_rate</value> </param> <param> - <key>run</key> + <key>_enabled</key> <value>True</value> </param> <param> - <key>realtime_scheduling</key> - <value></value> + <key>label</key> + <value>Sample Rate</value> + </param> + <param> + <key>value</key> + <value>1e6</value> + </param> + <param> + <key>type</key> + <value>eng_float</value> + </param> + <param> + <key>short_id</key> + <value>s</value> </param> <param> <key>_coordinate</key> - <value>(10, 10)</value> + <value>(342, 14)</value> </param> <param> <key>_rotation</key> @@ -252,7 +299,7 @@ <key>parameter</key> <param> <key>id</key> - <value>address</value> + <value>freq</value> </param> <param> <key>_enabled</key> @@ -260,23 +307,23 @@ </param> <param> <key>label</key> - <value>IP Address</value> + <value>Default Frequency</value> </param> <param> <key>value</key> - <value>addr=192.168.11.2</value> + <value>2.45e9</value> </param> <param> <key>type</key> - <value>string</value> + <value>eng_float</value> </param> <param> <key>short_id</key> - <value>a</value> + <value>f</value> </param> <param> <key>_coordinate</key> - <value>(188, 12)</value> + <value>(468, 14)</value> </param> <param> <key>_rotation</key> @@ -287,7 +334,7 @@ <key>parameter</key> <param> <key>id</key> - <value>samp_rate</value> + <value>gain</value> </param> <param> <key>_enabled</key> @@ -295,11 +342,11 @@ </param> <param> <key>label</key> - <value>Sample Rate</value> + <value>Default Gain</value> </param> <param> <key>value</key> - <value>1e6</value> + <value>0</value> </param> <param> <key>type</key> @@ -307,11 +354,11 @@ </param> <param> <key>short_id</key> - <value>s</value> + <value>g</value> </param> <param> <key>_coordinate</key> - <value>(342, 14)</value> + <value>(616, 13)</value> </param> <param> <key>_rotation</key> @@ -330,7 +377,15 @@ </param> <param> <key>type</key> - <value>complex</value> + <value>fc32</value> + </param> + <param> + <key>otw</key> + <value></value> + </param> + <param> + <key>stream_args</key> + <value></value> </param> <param> <key>dev_addr</key> @@ -349,7 +404,11 @@ <value>1</value> </param> <param> - <key>ref_source0</key> + <key>clock_source0</key> + <value></value> + </param> + <param> + <key>time_source0</key> <value></value> </param> <param> @@ -357,7 +416,11 @@ <value></value> </param> <param> - <key>ref_source1</key> + <key>clock_source1</key> + <value></value> + </param> + <param> + <key>time_source1</key> <value></value> </param> <param> @@ -365,7 +428,11 @@ <value></value> </param> <param> - <key>ref_source2</key> + <key>clock_source2</key> + <value></value> + </param> + <param> + <key>time_source2</key> <value></value> </param> <param> @@ -373,7 +440,11 @@ <value></value> </param> <param> - <key>ref_source3</key> + <key>clock_source3</key> + <value></value> + </param> + <param> + <key>time_source3</key> <value></value> </param> <param> @@ -381,7 +452,11 @@ <value></value> </param> <param> - <key>ref_source4</key> + <key>clock_source4</key> + <value></value> + </param> + <param> + <key>time_source4</key> <value></value> </param> <param> @@ -389,7 +464,11 @@ <value></value> </param> <param> - <key>ref_source5</key> + <key>clock_source5</key> + <value></value> + </param> + <param> + <key>time_source5</key> <value></value> </param> <param> @@ -397,7 +476,11 @@ <value></value> </param> <param> - <key>ref_source6</key> + <key>clock_source6</key> + <value></value> + </param> + <param> + <key>time_source6</key> <value></value> </param> <param> @@ -405,7 +488,11 @@ <value></value> </param> <param> - <key>ref_source7</key> + <key>clock_source7</key> + <value></value> + </param> + <param> + <key>time_source7</key> <value></value> </param> <param> @@ -942,69 +1029,26 @@ </param> </block> <block> - <key>parameter</key> + <key>analog_const_source_x</key> <param> <key>id</key> - <value>freq</value> + <value>analog_const_source_x_0</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> - <key>label</key> - <value>Default Frequency</value> - </param> - <param> - <key>value</key> - <value>2.45e9</value> - </param> - <param> - <key>type</key> - <value>eng_float</value> - </param> - <param> - <key>short_id</key> - <value>f</value> - </param> - <param> - <key>_coordinate</key> - <value>(468, 14)</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>Default Gain</value> - </param> - <param> - <key>value</key> - <value>0</value> - </param> - <param> <key>type</key> - <value>eng_float</value> + <value>complex</value> </param> <param> - <key>short_id</key> - <value>g</value> + <key>const</key> + <value>ampl</value> </param> <param> <key>_coordinate</key> - <value>(616, 13)</value> + <value>(74, 193)</value> </param> <param> <key>_rotation</key> @@ -1012,7 +1056,7 @@ </param> </block> <connection> - <source_block_id>const_source_x_0</source_block_id> + <source_block_id>analog_const_source_x_0</source_block_id> <sink_block_id>uhd_usrp_sink_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> diff --git a/gr-uhd/examples/grc/uhd_dpsk_mod.grc b/gr-uhd/examples/grc/uhd_dpsk_mod.grc index 9caafbb6ac..8387890372 100644 --- a/gr-uhd/examples/grc/uhd_dpsk_mod.grc +++ b/gr-uhd/examples/grc/uhd_dpsk_mod.grc @@ -226,7 +226,7 @@ </param> <param> <key>trig_mode</key> - <value>gr.gr_TRIG_MODE_AUTO</value> + <value>wxgui.TRIG_MODE_AUTO</value> </param> <param> <key>y_axis_label</key> diff --git a/gr-uhd/examples/grc/uhd_fft.grc b/gr-uhd/examples/grc/uhd_fft.grc index 2582b5e3b1..08e5f70edb 100644 --- a/gr-uhd/examples/grc/uhd_fft.grc +++ b/gr-uhd/examples/grc/uhd_fft.grc @@ -1,6 +1,6 @@ <?xml version='1.0' encoding='ASCII'?> <flow_graph> - <timestamp>Mon Jun 18 14:20:11 2012</timestamp> + <timestamp>Mon Mar 18 15:42:27 2013</timestamp> <block> <key>options</key> <param> @@ -248,7 +248,7 @@ </param> <param> <key>trig_mode</key> - <value>gr.gr_TRIG_MODE_AUTO</value> + <value>wxgui.TRIG_MODE_AUTO</value> </param> <param> <key>y_axis_label</key> @@ -1146,41 +1146,6 @@ </param> </block> <block> - <key>parameter</key> - <param> - <key>id</key> - <value>address</value> - </param> - <param> - <key>_enabled</key> - <value>True</value> - </param> - <param> - <key>label</key> - <value>IP Address</value> - </param> - <param> - <key>value</key> - <value></value> - </param> - <param> - <key>type</key> - <value>string</value> - </param> - <param> - <key>short_id</key> - <value>a</value> - </param> - <param> - <key>_coordinate</key> - <value>(190, 15)</value> - </param> - <param> - <key>_rotation</key> - <value>0</value> - </param> - </block> - <block> <key>wxgui_fftsink2</key> <param> <key>id</key> @@ -1507,6 +1472,41 @@ <value>0</value> </param> </block> + <block> + <key>parameter</key> + <param> + <key>id</key> + <value>address</value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>label</key> + <value>IP Address</value> + </param> + <param> + <key>value</key> + <value>addr=192.168.11.2</value> + </param> + <param> + <key>type</key> + <value>string</value> + </param> + <param> + <key>short_id</key> + <value>a</value> + </param> + <param> + <key>_coordinate</key> + <value>(190, 15)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + </block> <connection> <source_block_id>uhd_usrp_source_0</source_block_id> <sink_block_id>wxgui_scopesink2_0</sink_block_id> diff --git a/gr-uhd/examples/grc/uhd_rx_dpsk.grc b/gr-uhd/examples/grc/uhd_rx_dpsk.grc index 73848ff3cd..8a9faa4b73 100644 --- a/gr-uhd/examples/grc/uhd_rx_dpsk.grc +++ b/gr-uhd/examples/grc/uhd_rx_dpsk.grc @@ -1,6 +1,6 @@ <?xml version='1.0' encoding='ASCII'?> <flow_graph> - <timestamp>Sat Oct 8 15:08:55 2011</timestamp> + <timestamp>Mon Mar 18 11:10:25 2013</timestamp> <block> <key>options</key> <param> @@ -44,6 +44,10 @@ <value>True</value> </param> <param> + <key>max_nouts</key> + <value>0</value> + </param> + <param> <key>realtime_scheduling</key> <value></value> </param> @@ -310,10 +314,10 @@ </param> </block> <block> - <key>gr_null_sink</key> + <key>blocks_null_sink</key> <param> <key>id</key> - <value>gr_null_sink_0</value> + <value>blocks_null_sink_0</value> </param> <param> <key>_enabled</key> @@ -604,6 +608,10 @@ <value></value> </param> <param> + <key>freqvar</key> + <value>None</value> + </param> + <param> <key>_coordinate</key> <value>(710, 236)</value> </param> @@ -635,20 +643,20 @@ <value>0.35</value> </param> <param> - <key>phase_bw</key> + <key>freq_bw</key> <value>6.28/100.0</value> </param> <param> - <key>timing_bw</key> + <key>phase_bw</key> <value>6.28/100.0</value> </param> <param> - <key>omega_relative_limit</key> - <value>0.005</value> + <key>timing_bw</key> + <value>6.28/100.0</value> </param> <param> - <key>gray_coded</key> - <value>True</value> + <key>mod_code</key> + <value>"gray"</value> </param> <param> <key>verbose</key> @@ -793,7 +801,15 @@ </param> <param> <key>type</key> - <value>complex</value> + <value>fc32</value> + </param> + <param> + <key>otw</key> + <value></value> + </param> + <param> + <key>stream_args</key> + <value></value> </param> <param> <key>dev_addr</key> @@ -812,7 +828,11 @@ <value>1</value> </param> <param> - <key>ref_source0</key> + <key>clock_source0</key> + <value></value> + </param> + <param> + <key>time_source0</key> <value></value> </param> <param> @@ -820,7 +840,11 @@ <value></value> </param> <param> - <key>ref_source1</key> + <key>clock_source1</key> + <value></value> + </param> + <param> + <key>time_source1</key> <value></value> </param> <param> @@ -828,7 +852,11 @@ <value></value> </param> <param> - <key>ref_source2</key> + <key>clock_source2</key> + <value></value> + </param> + <param> + <key>time_source2</key> <value></value> </param> <param> @@ -836,7 +864,11 @@ <value></value> </param> <param> - <key>ref_source3</key> + <key>clock_source3</key> + <value></value> + </param> + <param> + <key>time_source3</key> <value></value> </param> <param> @@ -844,7 +876,11 @@ <value></value> </param> <param> - <key>ref_source4</key> + <key>clock_source4</key> + <value></value> + </param> + <param> + <key>time_source4</key> <value></value> </param> <param> @@ -852,7 +888,11 @@ <value></value> </param> <param> - <key>ref_source5</key> + <key>clock_source5</key> + <value></value> + </param> + <param> + <key>time_source5</key> <value></value> </param> <param> @@ -860,7 +900,11 @@ <value></value> </param> <param> - <key>ref_source6</key> + <key>clock_source6</key> + <value></value> + </param> + <param> + <key>time_source6</key> <value></value> </param> <param> @@ -868,7 +912,11 @@ <value></value> </param> <param> - <key>ref_source7</key> + <key>clock_source7</key> + <value></value> + </param> + <param> + <key>time_source7</key> <value></value> </param> <param> @@ -1406,7 +1454,7 @@ </block> <connection> <source_block_id>digital_dxpsk_demod_0</source_block_id> - <sink_block_id>gr_null_sink_0</sink_block_id> + <sink_block_id>blocks_null_sink_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> diff --git a/gr-uhd/examples/grc/uhd_tx_dpsk.grc b/gr-uhd/examples/grc/uhd_tx_dpsk.grc index 38318bef4b..b5f8e41054 100644 --- a/gr-uhd/examples/grc/uhd_tx_dpsk.grc +++ b/gr-uhd/examples/grc/uhd_tx_dpsk.grc @@ -1,6 +1,65 @@ <?xml version='1.0' encoding='ASCII'?> <flow_graph> - <timestamp>Sat Oct 8 14:55:39 2011</timestamp> + <timestamp>Mon Mar 18 11:11:06 2013</timestamp> + <block> + <key>options</key> + <param> + <key>id</key> + <value>uhd_tx_dpsk</value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>title</key> + <value>UHD TX DPSK</value> + </param> + <param> + <key>author</key> + <value></value> + </param> + <param> + <key>description</key> + <value></value> + </param> + <param> + <key>window_size</key> + <value>1280, 1024</value> + </param> + <param> + <key>generate_options</key> + <value>wx_gui</value> + </param> + <param> + <key>category</key> + <value>Custom</value> + </param> + <param> + <key>run_options</key> + <value>prompt</value> + </param> + <param> + <key>run</key> + <value>True</value> + </param> + <param> + <key>max_nouts</key> + <value>0</value> + </param> + <param> + <key>realtime_scheduling</key> + <value></value> + </param> + <param> + <key>_coordinate</key> + <value>(10, 10)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + </block> <block> <key>variable</key> <param> @@ -321,8 +380,8 @@ <value>0.35</value> </param> <param> - <key>gray_coded</key> - <value>True</value> + <key>mod_code</key> + <value>"gray"</value> </param> <param> <key>verbose</key> @@ -423,7 +482,15 @@ </param> <param> <key>type</key> - <value>complex</value> + <value>fc32</value> + </param> + <param> + <key>otw</key> + <value></value> + </param> + <param> + <key>stream_args</key> + <value></value> </param> <param> <key>dev_addr</key> @@ -442,7 +509,11 @@ <value>1</value> </param> <param> - <key>ref_source0</key> + <key>clock_source0</key> + <value></value> + </param> + <param> + <key>time_source0</key> <value></value> </param> <param> @@ -450,7 +521,11 @@ <value></value> </param> <param> - <key>ref_source1</key> + <key>clock_source1</key> + <value></value> + </param> + <param> + <key>time_source1</key> <value></value> </param> <param> @@ -458,7 +533,11 @@ <value></value> </param> <param> - <key>ref_source2</key> + <key>clock_source2</key> + <value></value> + </param> + <param> + <key>time_source2</key> <value></value> </param> <param> @@ -466,7 +545,11 @@ <value></value> </param> <param> - <key>ref_source3</key> + <key>clock_source3</key> + <value></value> + </param> + <param> + <key>time_source3</key> <value></value> </param> <param> @@ -474,7 +557,11 @@ <value></value> </param> <param> - <key>ref_source4</key> + <key>clock_source4</key> + <value></value> + </param> + <param> + <key>time_source4</key> <value></value> </param> <param> @@ -482,7 +569,11 @@ <value></value> </param> <param> - <key>ref_source5</key> + <key>clock_source5</key> + <value></value> + </param> + <param> + <key>time_source5</key> <value></value> </param> <param> @@ -490,7 +581,11 @@ <value></value> </param> <param> - <key>ref_source6</key> + <key>clock_source6</key> + <value></value> + </param> + <param> + <key>time_source6</key> <value></value> </param> <param> @@ -498,7 +593,11 @@ <value></value> </param> <param> - <key>ref_source7</key> + <key>clock_source7</key> + <value></value> + </param> + <param> + <key>time_source7</key> <value></value> </param> <param> @@ -1144,63 +1243,12 @@ <value></value> </param> <param> - <key>_coordinate</key> - <value>(827, 299)</value> - </param> - <param> - <key>_rotation</key> - <value>0</value> - </param> - </block> - <block> - <key>options</key> - <param> - <key>id</key> - <value>uhd_tx_dpsk</value> - </param> - <param> - <key>_enabled</key> - <value>True</value> - </param> - <param> - <key>title</key> - <value>UHD TX DPSK</value> - </param> - <param> - <key>author</key> - <value></value> - </param> - <param> - <key>description</key> - <value></value> - </param> - <param> - <key>window_size</key> - <value>1280, 1024</value> - </param> - <param> - <key>generate_options</key> - <value>wx_gui</value> - </param> - <param> - <key>category</key> - <value>Custom</value> - </param> - <param> - <key>run_options</key> - <value>prompt</value> - </param> - <param> - <key>run</key> - <value>True</value> - </param> - <param> - <key>realtime_scheduling</key> - <value></value> + <key>freqvar</key> + <value>None</value> </param> <param> <key>_coordinate</key> - <value>(10, 10)</value> + <value>(827, 299)</value> </param> <param> <key>_rotation</key> diff --git a/gr-uhd/examples/grc/uhd_wbfm_receive.grc b/gr-uhd/examples/grc/uhd_wbfm_receive.grc index 943e82cf31..e19015a790 100644 --- a/gr-uhd/examples/grc/uhd_wbfm_receive.grc +++ b/gr-uhd/examples/grc/uhd_wbfm_receive.grc @@ -1,6 +1,6 @@ <?xml version='1.0' encoding='ASCII'?> <flow_graph> - <timestamp>Tue Apr 24 16:59:09 2012</timestamp> + <timestamp>Mon Mar 18 11:13:02 2013</timestamp> <block> <key>options</key> <param> @@ -44,6 +44,10 @@ <value>True</value> </param> <param> + <key>max_nouts</key> + <value>0</value> + </param> + <param> <key>realtime_scheduling</key> <value></value> </param> @@ -1044,41 +1048,6 @@ <key>parameter</key> <param> <key>id</key> - <value>address</value> - </param> - <param> - <key>_enabled</key> - <value>True</value> - </param> - <param> - <key>label</key> - <value>IP Address</value> - </param> - <param> - <key>value</key> - <value>addr=192.168.10.2</value> - </param> - <param> - <key>type</key> - <value>string</value> - </param> - <param> - <key>short_id</key> - <value>a</value> - </param> - <param> - <key>_coordinate</key> - <value>(199, 14)</value> - </param> - <param> - <key>_rotation</key> - <value>0</value> - </param> - </block> - <block> - <key>parameter</key> - <param> - <key>id</key> <value>samp_rate</value> </param> <param> @@ -1181,33 +1150,6 @@ </param> </block> <block> - <key>blks2_wfm_rcv</key> - <param> - <key>id</key> - <value>blks2_wfm_rcv</value> - </param> - <param> - <key>_enabled</key> - <value>True</value> - </param> - <param> - <key>quad_rate</key> - <value>samp_rate</value> - </param> - <param> - <key>audio_decimation</key> - <value>audio_decim</value> - </param> - <param> - <key>_coordinate</key> - <value>(626, 153)</value> - </param> - <param> - <key>_rotation</key> - <value>0</value> - </param> - </block> - <block> <key>low_pass_filter</key> <param> <key>id</key> @@ -1364,6 +1306,10 @@ <value></value> </param> <param> + <key>freqvar</key> + <value>None</value> + </param> + <param> <key>_coordinate</key> <value>(624, 278)</value> </param> @@ -1372,6 +1318,68 @@ <value>0</value> </param> </block> + <block> + <key>analog_wfm_rcv</key> + <param> + <key>id</key> + <value>analog_wfm_rcv</value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>quad_rate</key> + <value>samp_rate</value> + </param> + <param> + <key>audio_decimation</key> + <value>audio_decim</value> + </param> + <param> + <key>_coordinate</key> + <value>(625, 153)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + </block> + <block> + <key>parameter</key> + <param> + <key>id</key> + <value>address</value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>label</key> + <value>IP Address</value> + </param> + <param> + <key>value</key> + <value>addr=192.168.10.2</value> + </param> + <param> + <key>type</key> + <value>string</value> + </param> + <param> + <key>short_id</key> + <value>a</value> + </param> + <param> + <key>_coordinate</key> + <value>(199, 14)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + </block> <connection> <source_block_id>blocks_multiply_const_vxx</source_block_id> <sink_block_id>audio_sink</sink_block_id> @@ -1379,14 +1387,14 @@ <sink_key>0</sink_key> </connection> <connection> - <source_block_id>blks2_wfm_rcv</source_block_id> + <source_block_id>analog_wfm_rcv</source_block_id> <sink_block_id>blocks_multiply_const_vxx</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>low_pass_filter_0</source_block_id> - <sink_block_id>blks2_wfm_rcv</sink_block_id> + <sink_block_id>analog_wfm_rcv</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> diff --git a/gr-uhd/examples/python/fm_tx4.py b/gr-uhd/examples/python/fm_tx4.py index e4cf3ded24..fefa67861b 100755 --- a/gr-uhd/examples/python/fm_tx4.py +++ b/gr-uhd/examples/python/fm_tx4.py @@ -56,7 +56,7 @@ class pipeline(gr.hier_block2): gr.io_signature(1, 1, gr.sizeof_gr_complex)) try: - src = gr.file_source (gr.sizeof_float, filename, True) + src = blocks.file_source (gr.sizeof_float, filename, True) except RuntimeError: sys.stderr.write(("\nError: Could not open file '%s'\n\n" % \ filename)) diff --git a/gr-uhd/examples/python/max_power.py b/gr-uhd/examples/python/max_power.py index 79fe120641..e1504e5ea2 100755 --- a/gr-uhd/examples/python/max_power.py +++ b/gr-uhd/examples/python/max_power.py @@ -27,6 +27,7 @@ Setup USRP for maximum power consumption. from gnuradio import gr from gnuradio import analog +from gnuradio import blocks from gnuradio import uhd from gnuradio.eng_option import eng_option from optparse import OptionParser @@ -95,7 +96,7 @@ class build_block(gr.top_block): self.u_rx = uhd.usrp_source(device_addr=args, io_type=uhd.io_type.COMPLEX_FLOAT32, num_channels=rx_nchan) - self.rx_dst0 = gr.null_sink(gr.sizeof_gr_complex) + self.rx_dst0 = blocks.null_sink(gr.sizeof_gr_complex) self.u_rx.set_samp_rate(MAX_RATE) diff --git a/gr-uhd/examples/python/usrp_spectrum_sense.py b/gr-uhd/examples/python/usrp_spectrum_sense.py index 39e85ab18a..fe97e21cbd 100755 --- a/gr-uhd/examples/python/usrp_spectrum_sense.py +++ b/gr-uhd/examples/python/usrp_spectrum_sense.py @@ -107,7 +107,10 @@ class my_top_block(gr.top_block): help="time to delay (in seconds) after changing frequency [default=%default]") parser.add_option("", "--dwell-delay", type="eng_float", default=10e-3, metavar="SECS", - help="time to dwell (in seconds) at a given frequncy [default=%default]") + help="time to dwell (in seconds) at a given frequency [default=%default]") + parser.add_option("", "--channel-bandwidth", type="eng_float", + default=12.5e3, metavar="Hz", + help="channel bandwidth of fft bins in Hz [default=%default]") parser.add_option("-F", "--fft-size", type="int", default=256, help="specify number of FFT bins [default=%default]") parser.add_option("", "--real-time", action="store_true", default=False, @@ -125,8 +128,9 @@ class my_top_block(gr.top_block): # swap them self.min_freq, self.max_freq = self.max_freq, self.min_freq - self.fft_size = options.fft_size - + self.fft_size = options.fft_size + self.channel_bandwidth = options.channel_bandwidth + if not options.real_time: realtime = False else: @@ -150,14 +154,14 @@ class my_top_block(gr.top_block): if(options.antenna): self.u.set_antenna(options.antenna, 0) - usrp_rate = options.samp_rate + self.usrp_rate = usrp_rate = options.samp_rate self.u.set_samp_rate(usrp_rate) dev_rate = self.u.get_samp_rate() - s2v = blocks.stream_to_vector(gr.sizeof_gr_complex, self.fft_size) + s2v = blocks.stream_to_vector(gr.sizeof_gr_complex, self.fft_size) mywindow = filter.window.blackmanharris(self.fft_size) - ffter = fft.fft_vcc(self.fft_size, True, mywindow) + ffter = fft.fft_vcc(self.fft_size, True, mywindow, True) power = 0 for tap in mywindow: power += tap*tap @@ -197,7 +201,7 @@ class my_top_block(gr.top_block): options.gain = float(g.start()+g.stop())/2.0 self.set_gain(options.gain) - print "gain =", options.gain + print "gain =", options.gain def set_next_freq(self): target_freq = self.next_freq @@ -231,6 +235,20 @@ class my_top_block(gr.top_block): def main_loop(tb): + + def nearest_freq(freq, channel_bandwidth): + freq = round(freq / channel_bandwidth, 0) * channel_bandwidth + return freq + + def bin_freq(i_bin, center_freq): + hz_per_bin = tb.usrp_rate / tb.fft_size + freq = center_freq - (tb.usrp_rate / 2) + (hz_per_bin * i_bin) + freq = nearest_freq(freq, tb.channel_bandwidth) + return freq + + bin_start = int(tb.fft_size * ((1 - 0.75) / 2)) + bin_stop = int(tb.fft_size - bin_start) + while 1: # Get the next message sent from the C++ code (blocking call). @@ -238,7 +256,7 @@ def main_loop(tb): m = parse_msg(tb.msgq.delete_head()) # Print center freq so we know that something is happening... - print m.center_freq + #print "m.center_freq:", m.center_freq # FIXME do something useful with the data... @@ -248,6 +266,13 @@ def main_loop(tb): # m.raw_data is a string that contains the binary floats. # You could write this as binary to a file. + for i_bin in range(bin_start, bin_stop): + + # create signal object to find matching signals + freq = int(bin_freq(i_bin, m.center_freq)) + power = float(m.data[i_bin]) + + print freq, power if __name__ == '__main__': t = ThreadClass() diff --git a/gr-uhd/examples/python/usrp_tv_rcv.py b/gr-uhd/examples/python/usrp_tv_rcv.py index 3e612f6a02..301840f41d 100755 --- a/gr-uhd/examples/python/usrp_tv_rcv.py +++ b/gr-uhd/examples/python/usrp_tv_rcv.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -# Copyright 2005-2007,2011,2012 Free Software Foundation, Inc. +# Copyright 2005-2007,2011-2013 Free Software Foundation, Inc. # # This file is part of GNU Radio # @@ -124,7 +124,7 @@ class tv_rx_block (stdgui2.std_top_block): if not ((filename is None) or (filename=="usrp")): # file is data source - self.filesource = gr.file_source(gr.sizeof_short,filename,options.repeat) + self.filesource = blocks.file_source(gr.sizeof_short,filename,options.repeat) self.istoc = blocks.interleaved_short_to_complex() self.connect(self.filesource,self.istoc) self.src=self.istoc @@ -193,7 +193,7 @@ class tv_rx_block (stdgui2.std_top_block): + " gray:" + options.out_filename print "(Use the spacebar to advance to next frames)" options.repeat=False - file_sink=gr.file_sink(gr.sizeof_char, options.out_filename) + file_sink = blocks.file_sink(gr.sizeof_char, options.out_filename) self.dst =file_sink self.agc = analog.agc_cc(1e-7,1.0,1.0) #1e-7 @@ -226,7 +226,7 @@ class tv_rx_block (stdgui2.std_top_block): elif process_type=='do_nullsink': #self.connect (self.src, self.am_demod,self.invert_and_scale,f2uc,video_sink) c2r=blocks.complex_to_real() - nullsink=gr.null_sink(gr.sizeof_float) + nullsink=blocks.null_sink(gr.sizeof_float) self.connect (self.src, c2r,nullsink) #video_sink) elif process_type=='do_tv_sync_corr': frame_size=width*height #int(usrp_rate/25.0) diff --git a/gr-uhd/examples/python/usrp_tv_rcv_nogui.py b/gr-uhd/examples/python/usrp_tv_rcv_nogui.py index 5eef4a00f6..80e2e1c17a 100755 --- a/gr-uhd/examples/python/usrp_tv_rcv_nogui.py +++ b/gr-uhd/examples/python/usrp_tv_rcv_nogui.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -# Copyright 2005-2007,2011 Free Software Foundation, Inc. +# Copyright 2005-2007,2011,2013 Free Software Foundation, Inc. # # This file is part of GNU Radio # @@ -120,9 +120,9 @@ class my_top_block(gr.top_block): if not (options.in_filename=="usrp"): # file is data source, capture with usr_rx_csfile.py - self.filesource = gr.file_source(gr.sizeof_short, - options.in_filename, - options.repeat) + self.filesource = blocks.file_source(gr.sizeof_short, + options.in_filename, + options.repeat) self.istoc = blocks.interleaved_short_to_complex() self.connect(self.filesource,self.istoc) self.src=self.istoc @@ -196,13 +196,13 @@ class my_top_block(gr.top_block): print "use the following line to show the demodulated TV-signal:" print "display -depth 8 -size " +str(width)+ "x" + str(height) + " gray:" +filename print "(Use the spacebar to advance to next frames)" - file_sink=gr.file_sink(gr.sizeof_char, filename) + file_sink = blocks.file_sink(gr.sizeof_char, filename) self.dst =file_sink if options.nframes is None: self.connect(self.src, self.agc) else: - self.head = gr.head(gr.sizeof_gr_complex, int(options.nframes*width*height)) + self.head = blocks.head(gr.sizeof_gr_complex, int(options.nframes*width*height)) self.connect(self.src, self.head, self.agc) self.connect (self.agc, self.am_demod, self.invert_and_scale, diff --git a/gr-uhd/gnuradio-uhd.pc.in b/gr-uhd/gnuradio-uhd.pc.in index 721141c520..3be8635328 100644 --- a/gr-uhd/gnuradio-uhd.pc.in +++ b/gr-uhd/gnuradio-uhd.pc.in @@ -5,7 +5,7 @@ includedir=@includedir@ Name: gnuradio-uhd Description: GNU Radio blocks for UHD -Requires: gnuradio-core +Requires: gnuradio-runtime Version: @LIBVER@ Libs: -L${libdir} -lgnuradio-uhd Cflags: -I${includedir} diff --git a/gr-uhd/include/uhd/CMakeLists.txt b/gr-uhd/include/uhd/CMakeLists.txt index 066487c6ca..71c17b89cd 100644 --- a/gr-uhd/include/uhd/CMakeLists.txt +++ b/gr-uhd/include/uhd/CMakeLists.txt @@ -25,6 +25,6 @@ install(FILES usrp_source.h usrp_sink.h amsg_source.h - DESTINATION ${GR_INCLUDE_DIR}/gnuradio/gr_uhd + DESTINATION ${GR_INCLUDE_DIR}/gnuradio/uhd COMPONENT "uhd_devel" ) diff --git a/gr-uhd/lib/CMakeLists.txt b/gr-uhd/lib/CMakeLists.txt index a6bd4e98b7..9121dd41b8 100644 --- a/gr-uhd/lib/CMakeLists.txt +++ b/gr-uhd/lib/CMakeLists.txt @@ -23,8 +23,7 @@ include_directories( ${CMAKE_CURRENT_BINARY_DIR} ${GR_UHD_INCLUDE_DIRS} - ${GNURADIO_CORE_INCLUDE_DIRS} - ${GRUEL_INCLUDE_DIRS} + ${GNURADIO_RUNTIME_INCLUDE_DIRS} ${LOG4CXX_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${UHD_INCLUDE_DIRS} @@ -41,6 +40,9 @@ if(ENABLE_GR_CTRLPORT) include_directories(${ICE_INCLUDE_DIR}) endif(ENABLE_GR_CTRLPORT) +include_directories(${LOG4CPP_INCLUDE_DIRS}) +link_directories(${LOG4CPP_LIBRARY_DIRS}) + ######################################################################## # Setup library ######################################################################## @@ -65,10 +67,10 @@ if(MSVC) endif(MSVC) list(APPEND uhd_libs - gnuradio-core + gnuradio-runtime ${Boost_LIBRARIES} ${UHD_LIBRARIES} - ${LOG4CXX_LIBRARIES} + ${LOG4CPP_LIBRARIES} ) add_library(gnuradio-uhd SHARED ${gr_uhd_sources}) diff --git a/gr-uhd/lib/amsg_source_impl.cc b/gr-uhd/lib/amsg_source_impl.cc index 76603e4989..cf344db202 100644 --- a/gr-uhd/lib/amsg_source_impl.cc +++ b/gr-uhd/lib/amsg_source_impl.cc @@ -48,7 +48,7 @@ namespace gr { { _dev = ::uhd::usrp::multi_usrp::make(device_addr); _amsg_thread = - gruel::thread(boost::bind(&amsg_source_impl::recv_loop, this)); + gr::thread::thread(boost::bind(&amsg_source_impl::recv_loop, this)); } amsg_source_impl::~amsg_source_impl() diff --git a/gr-uhd/lib/amsg_source_impl.h b/gr-uhd/lib/amsg_source_impl.h index 2928e85adb..f0f3d4bfb1 100644 --- a/gr-uhd/lib/amsg_source_impl.h +++ b/gr-uhd/lib/amsg_source_impl.h @@ -21,7 +21,7 @@ */ #include <uhd/amsg_source.h> -#include <gruel/thread.h> +#include <thread/thread.h> namespace gr { namespace uhd { @@ -38,7 +38,7 @@ namespace gr { protected: ::uhd::usrp::multi_usrp::sptr _dev; - gruel::thread _amsg_thread; + gr::thread::thread _amsg_thread; gr_msg_queue_sptr _msgq; bool _running; }; diff --git a/gr-uhd/lib/usrp_sink_impl.cc b/gr-uhd/lib/usrp_sink_impl.cc index 563917abaf..a049e79d8f 100644 --- a/gr-uhd/lib/usrp_sink_impl.cc +++ b/gr-uhd/lib/usrp_sink_impl.cc @@ -571,5 +571,27 @@ namespace gr { return true; } + void + usrp_sink_impl::setup_rpc() + { +#ifdef GR_CTRLPORT + add_rpc_variable( + rpcbasic_sptr(new rpcbasic_register_get<usrp_sink, double>( + alias(), "samp_rate", + &usrp_sink::get_samp_rate, + pmt::mp(100000.0f), pmt::mp(25000000.0f), pmt::mp(1000000.0f), + "sps", "TX Sample Rate", RPC_PRIVLVL_MIN, + DISPTIME | DISPOPTSTRIP))); + + add_rpc_variable( + rpcbasic_sptr(new rpcbasic_register_set<usrp_sink, double>( + alias(), "samp_rate", + &usrp_sink::set_samp_rate, + pmt::mp(100000.0f), pmt::mp(25000000.0f), pmt::mp(1000000.0f), + "sps", "TX Sample Rate", + RPC_PRIVLVL_MIN, DISPNULL))); +#endif /* GR_CTRLPORT */ + } + } /* namespace uhd */ } /* namespace gr */ diff --git a/gr-uhd/lib/usrp_sink_impl.h b/gr-uhd/lib/usrp_sink_impl.h index d630e0f2fc..d2058fb4a8 100644 --- a/gr-uhd/lib/usrp_sink_impl.h +++ b/gr-uhd/lib/usrp_sink_impl.h @@ -56,6 +56,8 @@ namespace gr { const ::uhd::stream_args_t &stream_args); ~usrp_sink_impl(); + void setup_rpc(); + ::uhd::dict<std::string, std::string> get_usrp_info(size_t chan); double get_samp_rate(void); ::uhd::meta_range_t get_samp_rates(void); diff --git a/gr-uhd/lib/usrp_source_impl.cc b/gr-uhd/lib/usrp_source_impl.cc index 9d6a55ae5a..ad3ffef2ad 100644 --- a/gr-uhd/lib/usrp_source_impl.cc +++ b/gr-uhd/lib/usrp_source_impl.cc @@ -624,5 +624,27 @@ namespace gr { return num_samps; } + void + usrp_source_impl::setup_rpc() + { +#ifdef GR_CTRLPORT + add_rpc_variable( + rpcbasic_sptr(new rpcbasic_register_get<usrp_source, double>( + alias(), "samp_rate", + &usrp_source::get_samp_rate, + pmt::mp(100000.0f), pmt::mp(25000000.0f), pmt::mp(1000000.0f), + "sps", "RX Sample Rate", RPC_PRIVLVL_MIN, + DISPTIME | DISPOPTSTRIP))); + + add_rpc_variable( + rpcbasic_sptr(new rpcbasic_register_set<usrp_source, double>( + alias(), "samp_rate", + &usrp_source::set_samp_rate, + pmt::mp(100000.0f), pmt::mp(25000000.0f), pmt::mp(1000000.0f), + "sps", "RX Sample Rate", + RPC_PRIVLVL_MIN, DISPNULL))); +#endif /* GR_CTRLPORT */ + } + } /* namespace uhd */ } /* namespace gr */ diff --git a/gr-uhd/lib/usrp_source_impl.h b/gr-uhd/lib/usrp_source_impl.h index b0b04a795b..e31263bda0 100644 --- a/gr-uhd/lib/usrp_source_impl.h +++ b/gr-uhd/lib/usrp_source_impl.h @@ -56,6 +56,8 @@ namespace gr { const ::uhd::stream_args_t &stream_args); ~usrp_source_impl(); + void setup_rpc(); + // Get Commands ::uhd::dict<std::string, std::string> get_usrp_info(size_t chan); std::string get_subdev_spec(size_t mboard); diff --git a/gr-uhd/swig/CMakeLists.txt b/gr-uhd/swig/CMakeLists.txt index 3a5132e7fd..ac80c5122b 100644 --- a/gr-uhd/swig/CMakeLists.txt +++ b/gr-uhd/swig/CMakeLists.txt @@ -27,14 +27,14 @@ set(GR_SWIG_FLAGS -DGR_HAVE_UHD) #needed to parse uhd_swig.i set(GR_SWIG_INCLUDE_DIRS ${GR_UHD_INCLUDE_DIRS} - ${GNURADIO_CORE_SWIG_INCLUDE_DIRS} - ${GRUEL_INCLUDE_DIRS} + ${GNURADIO_RUNTIME_SWIG_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${UHD_INCLUDE_DIRS} ) set(GR_SWIG_DOC_FILE ${CMAKE_CURRENT_BINARY_DIR}/uhd_swig_doc.i) -set(GR_SWIG_DOC_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/../include) +set(GR_SWIG_DOC_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/../include/uhd) +set(GR_SWIG_DOCS_TARGET_DEPS runtime_swig_swig_doc) link_directories(${UHD_LIBRARY_DIRS}) set(GR_SWIG_LIBRARIES gnuradio-uhd ${UHD_LIBRARIES}) diff --git a/gr-uhd/swig/uhd_swig.i b/gr-uhd/swig/uhd_swig.i index 8ab4d59f3e..3df3c885b6 100644 --- a/gr-uhd/swig/uhd_swig.i +++ b/gr-uhd/swig/uhd_swig.i @@ -32,7 +32,7 @@ //////////////////////////////////////////////////////////////////////// // standard includes //////////////////////////////////////////////////////////////////////// -%include "gnuradio.i" +%include "runtime_swig.i" //load generated python docstrings %include "uhd_swig_doc.i" @@ -49,9 +49,6 @@ //////////////////////////////////////////////////////////////////////// // used types //////////////////////////////////////////////////////////////////////// -%template(string_vector_t) std::vector<std::string>; - -%template(size_vector_t) std::vector<size_t>; %include <uhd/config.hpp> @@ -91,7 +88,6 @@ //////////////////////////////////////////////////////////////////////// %include stdint.i %include <uhd/types/serial.hpp> -%template(byte_vector_t) std::vector<uint8_t>; %include <uhd/usrp/dboard_iface.hpp> %template(dboard_iface_sptr) boost::shared_ptr<uhd::usrp::dboard_iface>; |