diff options
Diffstat (limited to 'grc')
-rw-r--r-- | grc/blocks/Makefile.am | 2 | ||||
-rw-r--r-- | grc/blocks/block_tree.xml | 5 | ||||
-rw-r--r-- | grc/blocks/gr_chunks_to_symbols.xml | 9 | ||||
-rw-r--r-- | grc/blocks/gr_copy.xml | 75 | ||||
-rw-r--r-- | grc/blocks/gr_delay.xml | 9 | ||||
-rw-r--r-- | grc/blocks/gr_kludge_copy.xml | 11 | ||||
-rw-r--r-- | grc/blocks/gr_nop.xml | 9 | ||||
-rw-r--r-- | grc/blocks/gr_packed_to_unpacked_xx.xml | 11 | ||||
-rw-r--r-- | grc/blocks/gr_stream_mux.xml | 75 | ||||
-rw-r--r-- | grc/blocks/gr_unpacked_to_packed_xx.xml | 11 | ||||
-rw-r--r-- | grc/gui/BlockTreeWindow.py | 19 | ||||
-rw-r--r-- | grc/python/extract_docs.py | 2 | ||||
-rw-r--r-- | grc/todo.txt | 1 |
13 files changed, 233 insertions, 6 deletions
diff --git a/grc/blocks/Makefile.am b/grc/blocks/Makefile.am index 7c769c4b45..61c0038038 100644 --- a/grc/blocks/Makefile.am +++ b/grc/blocks/Makefile.am @@ -84,6 +84,7 @@ dist_ourdata_DATA = \ gr_complex_to_real.xml \ gr_conjugate_cc.xml \ gr_constellation_decoder_cb.xml \ + gr_copy.xml \ gr_correlate_access_code_bb.xml \ gr_costas_loop_cc.xml \ gr_cpfsk_bc.xml \ @@ -167,6 +168,7 @@ dist_ourdata_DATA = \ gr_simple_squelch_cc.xml \ gr_single_pole_iir_filter_xx.xml \ gr_skiphead.xml \ + gr_stream_mux.xml \ gr_stream_to_streams.xml \ gr_stream_to_vector.xml \ gr_streams_to_stream.xml \ diff --git a/grc/blocks/block_tree.xml b/grc/blocks/block_tree.xml index 509956d3bc..187ca196a1 100644 --- a/grc/blocks/block_tree.xml +++ b/grc/blocks/block_tree.xml @@ -109,8 +109,10 @@ <block>gr_stream_to_vector</block> <block>gr_vector_to_stream</block> - + <block>blks2_stream_to_vector_decimator</block> + + <block>gr_stream_mux</block> </cat> <cat> <name>Misc Conversions</name> @@ -301,6 +303,7 @@ <block>gr_skiphead</block> <block>gr_kludge_copy</block> + <block>gr_copy</block> <block>gr_nop</block> <block>xmlrpc_server</block> diff --git a/grc/blocks/gr_chunks_to_symbols.xml b/grc/blocks/gr_chunks_to_symbols.xml index b54e710ef9..e9da38e9a5 100644 --- a/grc/blocks/gr_chunks_to_symbols.xml +++ b/grc/blocks/gr_chunks_to_symbols.xml @@ -57,12 +57,21 @@ <value>2</value> <type>int</type> </param> + <param> + <name>Num Ports</name> + <key>num_ports</key> + <value>1</value> + <type>int</type> + </param> + <check>$num_ports > 0</check> <sink> <name>in</name> <type>$in_type</type> + <nports>$num_ports</nports> </sink> <source> <name>out</name> <type>$out_type</type> + <nports>$num_ports</nports> </source> </block> diff --git a/grc/blocks/gr_copy.xml b/grc/blocks/gr_copy.xml new file mode 100644 index 0000000000..8b12eaca78 --- /dev/null +++ b/grc/blocks/gr_copy.xml @@ -0,0 +1,75 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Copy +################################################### + --> +<block> + <name>Copy</name> + <key>gr_copy</key> + <import>from gnuradio import gr</import> + <make>gr.copy($type.size*$vlen) +self.$(id).set_enabled($enabled)</make> + <callback>set_enabled($enabled)</callback> + <param> + <name>Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>size:gr.sizeof_gr_complex</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>size:gr.sizeof_float</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>size:gr.sizeof_int</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>size:gr.sizeof_short</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>size:gr.sizeof_char</opt> + </option> + </param> + <param> + <name>Enabled</name> + <key>enabled</key> + <value>True</value> + <type>bool</type> + <option> + <name>Enabled</name> + <key>True</key> + </option> + <option> + <name>Disabled</name> + <key>False</key> + </option> + </param> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$vlen > 0</check> + <sink> + <name>in</name> + <type>$type</type> + <vlen>$vlen</vlen> + </sink> + <source> + <name>out</name> + <type>$type</type> + <vlen>$vlen</vlen> + </source> +</block> diff --git a/grc/blocks/gr_delay.xml b/grc/blocks/gr_delay.xml index 64a774defa..5cc411a782 100644 --- a/grc/blocks/gr_delay.xml +++ b/grc/blocks/gr_delay.xml @@ -47,20 +47,29 @@ <type>int</type> </param> <param> + <name>Num Ports</name> + <key>num_ports</key> + <value>1</value> + <type>int</type> + </param> + <param> <name>Vec Length</name> <key>vlen</key> <value>1</value> <type>int</type> </param> + <check>$num_ports > 0</check> <check>$vlen > 0</check> <sink> <name>in</name> <type>$type</type> <vlen>$vlen</vlen> + <nports>$num_ports</nports> </sink> <source> <name>out</name> <type>$type</type> <vlen>$vlen</vlen> + <nports>$num_ports</nports> </source> </block> diff --git a/grc/blocks/gr_kludge_copy.xml b/grc/blocks/gr_kludge_copy.xml index 3c817c5726..8058b082db 100644 --- a/grc/blocks/gr_kludge_copy.xml +++ b/grc/blocks/gr_kludge_copy.xml @@ -5,7 +5,7 @@ ################################################### --> <block> - <name>Copy</name> + <name>Kludge Copy</name> <key>gr_kludge_copy</key> <import>from gnuradio import gr</import> <make>gr.kludge_copy($type.size*$vlen)</make> @@ -40,20 +40,29 @@ </option> </param> <param> + <name>Num Ports</name> + <key>num_ports</key> + <value>1</value> + <type>int</type> + </param> + <param> <name>Vec Length</name> <key>vlen</key> <value>1</value> <type>int</type> </param> + <check>$num_ports > 0</check> <check>$vlen > 0</check> <sink> <name>in</name> <type>$type</type> <vlen>$vlen</vlen> + <nports>$num_ports</nports> </sink> <source> <name>out</name> <type>$type</type> <vlen>$vlen</vlen> + <nports>$num_ports</nports> </source> </block> diff --git a/grc/blocks/gr_nop.xml b/grc/blocks/gr_nop.xml index 127a78a553..bd884d6b8b 100644 --- a/grc/blocks/gr_nop.xml +++ b/grc/blocks/gr_nop.xml @@ -40,20 +40,29 @@ </option> </param> <param> + <name>Num Ports</name> + <key>num_ports</key> + <value>1</value> + <type>int</type> + </param> + <param> <name>Vec Length</name> <key>vlen</key> <value>1</value> <type>int</type> </param> + <check>$num_ports > 0</check> <check>$vlen > 0</check> <sink> <name>in</name> <type>$type</type> <vlen>$vlen</vlen> + <nports>$num_ports</nports> </sink> <source> <name>out</name> <type>$type</type> <vlen>$vlen</vlen> + <nports>$num_ports</nports> </source> </block> diff --git a/grc/blocks/gr_packed_to_unpacked_xx.xml b/grc/blocks/gr_packed_to_unpacked_xx.xml index 5fd9729a40..c1477dd9ca 100644 --- a/grc/blocks/gr_packed_to_unpacked_xx.xml +++ b/grc/blocks/gr_packed_to_unpacked_xx.xml @@ -38,7 +38,7 @@ <param> <name>Endianness</name> <key>endianness</key> - <type>enum</type> + <type>int</type> <option> <name>MSB</name> <key>gr.GR_MSB_FIRST</key> @@ -48,12 +48,21 @@ <key>gr.GR_LSB_FIRST</key> </option> </param> + <param> + <name>Num Ports</name> + <key>num_ports</key> + <value>1</value> + <type>int</type> + </param> + <check>$num_ports > 0</check> <sink> <name>in</name> <type>$type</type> + <nports>$num_ports</nports> </sink> <source> <name>out</name> <type>$type</type> + <nports>$num_ports</nports> </source> </block> diff --git a/grc/blocks/gr_stream_mux.xml b/grc/blocks/gr_stream_mux.xml new file mode 100644 index 0000000000..8efe7b6555 --- /dev/null +++ b/grc/blocks/gr_stream_mux.xml @@ -0,0 +1,75 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Stream Mux: +## all types, many inputs, only one output +################################################### + --> +<block> + <name>Stream Mux</name> + <key>gr_stream_mux</key> + <import>from gnuradio import gr</import> + <make>gr.stream_mux($type.size*$vlen, $lengths)</make> + <param> + <name>Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>size:gr.sizeof_gr_complex</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>size:gr.sizeof_float</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>size:gr.sizeof_int</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>size:gr.sizeof_short</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>size:gr.sizeof_char</opt> + </option> + </param> + <param> + <name>Lengths</name> + <key>lengths</key> + <value>1, 1</value> + <type>int_vector</type> + </param> + <param> + <name>Num Inputs</name> + <key>num_inputs</key> + <value>2</value> + <type>int</type> + </param> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + <check>$num_inputs > 0</check> + <check>$num_inputs == len($lengths)</check> + <check>$vlen > 0</check> + <sink> + <name>in</name> + <type>$type</type> + <vlen>$vlen</vlen> + <nports>$num_inputs</nports> + </sink> + <source> + <name>out</name> + <type>$type</type> + <vlen>$vlen</vlen> + </source> +</block> diff --git a/grc/blocks/gr_unpacked_to_packed_xx.xml b/grc/blocks/gr_unpacked_to_packed_xx.xml index f7457eb5c1..427c800824 100644 --- a/grc/blocks/gr_unpacked_to_packed_xx.xml +++ b/grc/blocks/gr_unpacked_to_packed_xx.xml @@ -38,7 +38,7 @@ <param> <name>Endianness</name> <key>endianness</key> - <type>enum</type> + <type>int</type> <option> <name>MSB</name> <key>gr.GR_MSB_FIRST</key> @@ -48,12 +48,21 @@ <key>gr.GR_LSB_FIRST</key> </option> </param> + <param> + <name>Num Ports</name> + <key>num_ports</key> + <value>1</value> + <type>int</type> + </param> + <check>$num_ports > 0</check> <sink> <name>in</name> <type>$type</type> + <nports>$num_ports</nports> </sink> <source> <name>out</name> <type>$type</type> + <nports>$num_ports</nports> </source> </block> diff --git a/grc/gui/BlockTreeWindow.py b/grc/gui/BlockTreeWindow.py index 07b8ea7e0f..c12120eaff 100644 --- a/grc/gui/BlockTreeWindow.py +++ b/grc/gui/BlockTreeWindow.py @@ -64,6 +64,9 @@ class BlockTreeWindow(gtk.VBox): renderer = gtk.CellRendererText() column = gtk.TreeViewColumn('Blocks', renderer, text=NAME_INDEX) self.treeview.append_column(column) + #setup the search + self.treeview.set_enable_search(True) + self.treeview.set_search_equal_func(self._handle_search) #try to enable the tooltips (available in pygtk 2.12 and above) try: self.treeview.set_tooltip_column(DOC_INDEX) except: pass @@ -145,6 +148,22 @@ class BlockTreeWindow(gtk.VBox): ############################################################ ## Event Handlers ############################################################ + def _handle_search(self, model, column, key, iter): + #determine which blocks match the search key + blocks = self.get_flow_graph().get_parent().get_blocks() + matching_blocks = filter(lambda b: key in b.get_key() or key in b.get_name().lower(), blocks) + #remove the old search category + try: self.treestore.remove(self._categories.pop((self._search_category, ))) + except (KeyError, AttributeError): pass #nothing to remove + #create a search category + if not matching_blocks: return + self._search_category = 'Search: %s'%key + for block in matching_blocks: self.add_block(self._search_category, block) + #expand the search category + path = self.treestore.get_path(self._categories[(self._search_category, )]) + self.treeview.collapse_all() + self.treeview.expand_row(path, open_all=False) + def _handle_drag_get_data(self, widget, drag_context, selection_data, info, time): """ Handle a drag and drop by setting the key to the selection object. diff --git a/grc/python/extract_docs.py b/grc/python/extract_docs.py index f0c1e749ce..f41f415b2c 100644 --- a/grc/python/extract_docs.py +++ b/grc/python/extract_docs.py @@ -63,7 +63,7 @@ def _extract(key): #extract descriptions comp_name = extract_txt(xml.xpath(DOXYGEN_NAME_XPATH)[0]).strip() comp_name = ' --- ' + comp_name + ' --- ' - if re.match('(gr|usrp2|trellis)_.*', key): + if re.match('(gr|usrp2|trellis|noaa)_.*', key): brief_desc = extract_txt(xml.xpath(DOXYGEN_BRIEFDESC_GR_XPATH)[0]).strip() detailed_desc = extract_txt(xml.xpath(DOXYGEN_DETAILDESC_GR_XPATH)[0]).strip() else: diff --git a/grc/todo.txt b/grc/todo.txt index b4e3af39d6..e4fd4647a7 100644 --- a/grc/todo.txt +++ b/grc/todo.txt @@ -35,7 +35,6 @@ * remove blocks in block tree covered by doxygen * param editor, expand entry boxes in focus * change param dialog to panel within main window -* search for blocks in category window * gui grid editor for configuring grid params/placing wxgui plots and controls * drag from one port to another to connect * per parameter docs |