summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnuradio-runtime/python/pmt/pmt_to_python.py64
-rwxr-xr-xgnuradio-runtime/python/pmt/qa_pmt_to_python.py16
-rw-r--r--gr-digital/examples/demod/test_corr_and_sync.grc1626
-rw-r--r--gr-digital/grc/digital_block_tree.xml10
-rw-r--r--gr-digital/grc/digital_hdlc_deframer_bp.xml3
-rw-r--r--gr-digital/grc/digital_hdlc_framer_pb.xml3
-rw-r--r--gr-digital/include/gnuradio/digital/costas_loop_cc.h18
-rw-r--r--gr-digital/include/gnuradio/digital/mpsk_receiver_cc.h35
-rw-r--r--gr-digital/lib/correlate_access_code_tag_bb_impl.cc2
-rw-r--r--gr-digital/lib/costas_loop_cc_impl.cc18
-rw-r--r--gr-digital/lib/costas_loop_cc_impl.h10
-rw-r--r--gr-digital/lib/mpsk_receiver_cc_impl.cc60
-rw-r--r--gr-digital/lib/mpsk_receiver_cc_impl.h28
-rw-r--r--gr-filter/python/filter/pfb.py106
-rw-r--r--gr-qtgui/grc/qtgui_const_sink_x.xml1058
-rw-r--r--gr-qtgui/grc/qtgui_freq_sink_x.xml578
-rw-r--r--gr-qtgui/grc/qtgui_histogram_sink_x.xml1063
-rw-r--r--gr-qtgui/grc/qtgui_number_sink.xml233
-rw-r--r--gr-qtgui/grc/qtgui_time_raster_x.xml237
-rw-r--r--gr-qtgui/grc/qtgui_time_sink_x.xml1171
-rw-r--r--gr-qtgui/grc/qtgui_waterfall_sink_x.xml236
-rw-r--r--gr-qtgui/lib/freq_sink_f_impl.cc2
-rw-r--r--grc/base/Block.py4
-rw-r--r--grc/base/Param.py12
-rw-r--r--grc/gui/Param.py77
-rw-r--r--grc/python/Param.py44
-rw-r--r--grc/python/block.dtd3
-rw-r--r--volk/lib/qa_utils.cc29
28 files changed, 2339 insertions, 4407 deletions
diff --git a/gnuradio-runtime/python/pmt/pmt_to_python.py b/gnuradio-runtime/python/pmt/pmt_to_python.py
index 3c4dcf4425..3344eba163 100644
--- a/gnuradio-runtime/python/pmt/pmt_to_python.py
+++ b/gnuradio-runtime/python/pmt/pmt_to_python.py
@@ -64,37 +64,41 @@ def pmt_from_dict(p):
return d
numpy_mappings = {
- (numpy.float32,pmt.init_f32vector, float, pmt.f32vector_elements, pmt.is_f32vector),
- (numpy.float64,pmt.init_f64vector, float, pmt.f64vector_elements, pmt.is_f64vector),
- (numpy.complex64,pmt.init_c32vector, complex, pmt.c32vector_elements, pmt.is_c32vector),
- (numpy.complex128,pmt.init_c64vector, complex, pmt.c64vector_elements, pmt.is_c64vector),
- (numpy.int8,pmt.init_s8vector, int, pmt.s8vector_elements, pmt.is_s8vector),
- (numpy.int16,pmt.init_s16vector, int, pmt.s16vector_elements, pmt.is_s16vector),
- (numpy.int32,pmt.init_s32vector, int, pmt.s32vector_elements, pmt.is_s32vector),
-# (numpy.int64,pmt.init_s64vector, int, pmt.s64vector_elements, pmt.is_s64vector),
- (numpy.uint8,pmt.init_u8vector, int, pmt.u8vector_elements, pmt.is_u8vector),
- (numpy.uint16,pmt.init_u16vector, int, pmt.u16vector_elements, pmt.is_u16vector),
- (numpy.uint32,pmt.init_u32vector, int, pmt.u32vector_elements, pmt.is_u32vector),
-# (numpy.uint64,pmt.init_u64vector, int, pmt.u64vector_elements, pmt.is_u64vector),
- (numpy.byte,pmt.init_u8vector, int, pmt.u8vector_elements, pmt.is_u8vector),
- }
+ numpy.dtype(numpy.float32): (pmt.init_f32vector, float, pmt.f32vector_elements, pmt.is_f32vector),
+ numpy.dtype(numpy.float64): (pmt.init_f64vector, float, pmt.f64vector_elements, pmt.is_f64vector),
+ numpy.dtype(numpy.complex64): (pmt.init_c32vector, complex, pmt.c32vector_elements, pmt.is_c32vector),
+ numpy.dtype(numpy.complex128): (pmt.init_c64vector, complex, pmt.c64vector_elements, pmt.is_c64vector),
+ numpy.dtype(numpy.int8): (pmt.init_s8vector, int, pmt.s8vector_elements, pmt.is_s8vector),
+ numpy.dtype(numpy.int16): (pmt.init_s16vector, int, pmt.s16vector_elements, pmt.is_s16vector),
+ numpy.dtype(numpy.int32): (pmt.init_s32vector, int, pmt.s32vector_elements, pmt.is_s32vector),
+# numpy.dtype(numpy.int64): (pmt.init_s64vector, int, pmt.s64vector_elements, pmt.is_s64vector),
+ numpy.dtype(numpy.uint8): (pmt.init_u8vector, int, pmt.u8vector_elements, pmt.is_u8vector),
+ numpy.dtype(numpy.uint16): (pmt.init_u16vector, int, pmt.u16vector_elements, pmt.is_u16vector),
+ numpy.dtype(numpy.uint32): (pmt.init_u32vector, int, pmt.u32vector_elements, pmt.is_u32vector),
+# numpy.dtype(numpy.uint64): (pmt.init_u64vector, int, pmt.u64vector_elements, pmt.is_u64vector),
+ numpy.dtype(numpy.byte): (pmt.init_u8vector, int, pmt.u8vector_elements, pmt.is_u8vector),
+}
-def numpy_to_uvector(p):
- if not p.dtype in map(lambda x: x[0], numpy_mappings):
- raise ValueError("unsupported numpy array dtype for converstion to pmt %s"%(p.dtype))
- for m in numpy_mappings:
- if(m[0] == p.dtype):
- pc = map(lambda i: m[2](i), p)
- return m[1](p.size, pc);
+uvector_mappings = dict([ (numpy_mappings[key][3], (numpy_mappings[key][2], key)) for key in numpy_mappings ])
-def uvector_to_numpy(p):
- for m in numpy_mappings:
- if(m[4](p)):
- a= m[3](p);
- return numpy.array(m[3](p), dtype=m[0]);
- raise ValueError("unsupported numpy array dtype for converstion from pmt %s"%(p))
+def numpy_to_uvector(numpy_array):
+ try:
+ mapping = numpy_mappings[numpy_array.dtype]
+ pc = map(mapping[1], numpy.ravel(numpy_array))
+ return mapping[0](numpy_array.size, pc)
+ except KeyError:
+ raise ValueError("unsupported numpy array dtype for converstion to pmt %s"%(numpy_array.dtype))
-THE_TABLE = ( #python type, check pmt type, to python, from python
+def uvector_to_numpy(uvector):
+ match = None
+ for test_func in uvector_mappings.keys():
+ if test_func(uvector):
+ match = uvector_mappings[test_func]
+ return numpy.array(match[0](uvector), dtype = match[1])
+ else:
+ raise ValueError("unsupported uvector data type for conversion to numpy array %s"%(uvector))
+
+type_mappings = ( #python type, check pmt type, to python, from python
(None, pmt.is_null, lambda x: None, lambda x: pmt.PMT_NIL),
(bool, pmt.is_bool, pmt.to_bool, pmt.from_bool),
(str, pmt.is_symbol, pmt.symbol_to_string, pmt.string_to_symbol),
@@ -110,12 +114,12 @@ THE_TABLE = ( #python type, check pmt type, to python, from python
)
def pmt_to_python(p):
- for python_type, pmt_check, to_python, from_python in THE_TABLE:
+ for python_type, pmt_check, to_python, from_python in type_mappings:
if pmt_check(p): return to_python(p)
raise ValueError("can't convert %s type to pmt (%s)"%(type(p),p))
def python_to_pmt(p):
- for python_type, pmt_check, to_python, from_python in THE_TABLE:
+ for python_type, pmt_check, to_python, from_python in type_mappings:
if python_type is None:
if p == None: return from_python(p)
elif isinstance(p, python_type): return from_python(p)
diff --git a/gnuradio-runtime/python/pmt/qa_pmt_to_python.py b/gnuradio-runtime/python/pmt/qa_pmt_to_python.py
index ae86fc6d53..39cfc05dd6 100755
--- a/gnuradio-runtime/python/pmt/qa_pmt_to_python.py
+++ b/gnuradio-runtime/python/pmt/qa_pmt_to_python.py
@@ -22,13 +22,27 @@
import unittest
import pmt
+import pmt_to_python as pmt2py
class test_pmt_to_python(unittest.TestCase):
- def test01 (self):
+ def test_pmt_from_double(self):
b = pmt.from_double(123765)
self.assertEqual(pmt.to_python(b), 123765)
t = pmt.to_pmt(range(5))
+
+ def test_numpy_to_uvector_and_reverse(self):
+ import numpy as np
+ N = 100
+ narr = np.ndarray(N, dtype=np.complex128)
+ narr.real[:] = np.random.uniform(size=N)
+ narr.imag[:] = np.random.uniform(size=N)
+ uvector = pmt2py.numpy_to_uvector(narr)
+ nparr = pmt2py.uvector_to_numpy(uvector)
+ self.assertTrue(nparr.dtype==narr.dtype)
+ self.assertTrue(np.alltrue(nparr == narr))
+
+
if __name__ == '__main__':
unittest.main()
diff --git a/gr-digital/examples/demod/test_corr_and_sync.grc b/gr-digital/examples/demod/test_corr_and_sync.grc
index e0127878ad..8701690b88 100644
--- a/gr-digital/examples/demod/test_corr_and_sync.grc
+++ b/gr-digital/examples/demod/test_corr_and_sync.grc
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='ASCII'?>
<flow_graph>
- <timestamp>Thu Nov 7 11:05:37 2013</timestamp>
+ <timestamp>Thu Apr 10 15:34:59 2014</timestamp>
<block>
<key>options</key>
<param>
@@ -64,7 +64,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>rrc_taps</value>
+ <value>samp_rate</value>
</param>
<param>
<key>_enabled</key>
@@ -72,11 +72,11 @@
</param>
<param>
<key>value</key>
- <value>firdes.root_raised_cosine(nfilts, nfilts, 1.0/float(sps), eb, 5*sps*nfilts)</value>
+ <value>100000</value>
</param>
<param>
<key>_coordinate</key>
- <value>(1075, 73)</value>
+ <value>(11, 72)</value>
</param>
<param>
<key>_rotation</key>
@@ -87,7 +87,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>nfilts</value>
+ <value>eb</value>
</param>
<param>
<key>_enabled</key>
@@ -95,11 +95,11 @@
</param>
<param>
<key>value</key>
- <value>32</value>
+ <value>0.35</value>
</param>
<param>
<key>_coordinate</key>
- <value>(1074, 9)</value>
+ <value>(346, 72)</value>
</param>
<param>
<key>_rotation</key>
@@ -110,7 +110,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>payload_size</value>
+ <value>matched_filter</value>
</param>
<param>
<key>_enabled</key>
@@ -118,11 +118,11 @@
</param>
<param>
<key>value</key>
- <value>992</value>
+ <value>firdes.root_raised_cosine(nfilts, nfilts, 1, eb, int(11*sps*nfilts))</value>
</param>
<param>
<key>_coordinate</key>
- <value>(101, 73)</value>
+ <value>(429, 72)</value>
</param>
<param>
<key>_rotation</key>
@@ -133,7 +133,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>gap</value>
+ <value>preamble</value>
</param>
<param>
<key>_enabled</key>
@@ -141,11 +141,11 @@
</param>
<param>
<key>value</key>
- <value>20000</value>
+ <value>[1,-1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,-1,1,1,-1,1,-1,-1,1,-1,-1,1,1,1,-1,-1,-1,1,-1,1,1,1,1,-1,-1,1,-1,1,-1,-1,-1,1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,1,1,1,1,1,1,-1,-1]</value>
</param>
<param>
<key>_coordinate</key>
- <value>(202, 72)</value>
+ <value>(279, 8)</value>
</param>
<param>
<key>_rotation</key>
@@ -156,7 +156,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>bb_filter</value>
+ <value>sps</value>
</param>
<param>
<key>_enabled</key>
@@ -164,11 +164,11 @@
</param>
<param>
<key>value</key>
- <value>firdes.root_raised_cosine(sps, sps, 1, eb, 101)</value>
+ <value>4</value>
</param>
<param>
<key>_coordinate</key>
- <value>(429, 8)</value>
+ <value>(278, 72)</value>
</param>
<param>
<key>_rotation</key>
@@ -179,7 +179,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>sps</value>
+ <value>bb_filter</value>
</param>
<param>
<key>_enabled</key>
@@ -187,11 +187,11 @@
</param>
<param>
<key>value</key>
- <value>4</value>
+ <value>firdes.root_raised_cosine(sps, sps, 1, eb, 101)</value>
</param>
<param>
<key>_coordinate</key>
- <value>(278, 72)</value>
+ <value>(429, 8)</value>
</param>
<param>
<key>_rotation</key>
@@ -202,7 +202,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>preamble</value>
+ <value>gap</value>
</param>
<param>
<key>_enabled</key>
@@ -210,11 +210,11 @@
</param>
<param>
<key>value</key>
- <value>[1,-1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,-1,1,1,-1,1,-1,-1,1,-1,-1,1,1,1,-1,-1,-1,1,-1,1,1,1,1,-1,-1,1,-1,1,-1,-1,-1,1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,1,1,1,1,1,1,-1,-1]</value>
+ <value>20000</value>
</param>
<param>
<key>_coordinate</key>
- <value>(279, 8)</value>
+ <value>(202, 72)</value>
</param>
<param>
<key>_rotation</key>
@@ -225,7 +225,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>matched_filter</value>
+ <value>payload_size</value>
</param>
<param>
<key>_enabled</key>
@@ -233,11 +233,11 @@
</param>
<param>
<key>value</key>
- <value>firdes.root_raised_cosine(nfilts, nfilts, 1, eb, int(11*sps*nfilts))</value>
+ <value>992</value>
</param>
<param>
<key>_coordinate</key>
- <value>(429, 72)</value>
+ <value>(101, 73)</value>
</param>
<param>
<key>_rotation</key>
@@ -248,7 +248,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>eb</value>
+ <value>nfilts</value>
</param>
<param>
<key>_enabled</key>
@@ -256,11 +256,11 @@
</param>
<param>
<key>value</key>
- <value>0.35</value>
+ <value>32</value>
</param>
<param>
<key>_coordinate</key>
- <value>(346, 72)</value>
+ <value>(1074, 9)</value>
</param>
<param>
<key>_rotation</key>
@@ -271,7 +271,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>samp_rate</value>
+ <value>rrc_taps</value>
</param>
<param>
<key>_enabled</key>
@@ -279,11 +279,11 @@
</param>
<param>
<key>value</key>
- <value>100000</value>
+ <value>firdes.root_raised_cosine(nfilts, nfilts, 1.0/float(sps), eb, 5*sps*nfilts)</value>
</param>
<param>
<key>_coordinate</key>
- <value>(11, 72)</value>
+ <value>(1075, 73)</value>
</param>
<param>
<key>_rotation</key>
@@ -317,6 +317,10 @@
<value>0</value>
</param>
<param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
<key>_coordinate</key>
<value>(1091, 303)</value>
</param>
@@ -348,6 +352,10 @@
<value>0</value>
</param>
<param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
<key>_coordinate</key>
<value>(1235, 194)</value>
</param>
@@ -379,6 +387,10 @@
<value>0</value>
</param>
<param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
<key>_coordinate</key>
<value>(1235, 149)</value>
</param>
@@ -418,6 +430,10 @@
<value>0</value>
</param>
<param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
<key>_coordinate</key>
<value>(972, 174)</value>
</param>
@@ -457,6 +473,10 @@
<value>0</value>
</param>
<param>
+ <key>block_tags</key>
+ <value>False</value>
+ </param>
+ <param>
<key>affinity</key>
<value></value>
</param>
@@ -465,6 +485,10 @@
<value>0</value>
</param>
<param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
<key>_coordinate</key>
<value>(772, 158)</value>
</param>
@@ -496,6 +520,10 @@
<value>1</value>
</param>
<param>
+ <key>ignoretag</key>
+ <value>True</value>
+ </param>
+ <param>
<key>affinity</key>
<value></value>
</param>
@@ -504,6 +532,10 @@
<value>0</value>
</param>
<param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
<key>_coordinate</key>
<value>(586, 190)</value>
</param>
@@ -551,6 +583,10 @@
<value>0</value>
</param>
<param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
<key>_coordinate</key>
<value>(15, 165)</value>
</param>
@@ -602,6 +638,10 @@
<value>0</value>
</param>
<param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
<key>_coordinate</key>
<value>(312, 166)</value>
</param>
@@ -645,6 +685,10 @@
<value>0</value>
</param>
<param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
<key>_coordinate</key>
<value>(568, 288)</value>
</param>
@@ -672,103 +716,28 @@
<value>1</value>
</param>
<param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(402, 322)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>qtgui_time_sink_x</key>
- <param>
- <key>id</key>
- <value>qtgui_time_sink_x_1</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>type</key>
- <value>float</value>
- </param>
- <param>
- <key>name</key>
- <value>QT GUI Plot</value>
- </param>
- <param>
- <key>size</key>
- <value>80000</value>
- </param>
- <param>
- <key>srate</key>
- <value>samp_rate</value>
- </param>
- <param>
- <key>ymin</key>
- <value>-200</value>
- </param>
- <param>
- <key>ymax</key>
- <value>400</value>
- </param>
- <param>
- <key>nconnections</key>
- <value>3</value>
- </param>
- <param>
- <key>update_time</key>
- <value>0.10</value>
- </param>
- <param>
- <key>tr_mode</key>
- <value>qtgui.TRIG_MODE_NORM</value>
+ <key>num_outputs</key>
+ <value>1</value>
</param>
<param>
- <key>tr_slope</key>
- <value>qtgui.TRIG_SLOPE_POS</value>
+ <key>bus_conns</key>
+ <value>[[0,],]</value>
</param>
<param>
- <key>tr_level</key>
- <value>200</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>tr_delay</key>
+ <key>minoutbuf</key>
<value>0</value>
</param>
<param>
- <key>tr_chan</key>
+ <key>maxoutbuf</key>
<value>0</value>
</param>
<param>
- <key>tr_tag</key>
- <value>""</value>
- </param>
- <param>
- <key>entags</key>
- <value>True</value>
- </param>
- <param>
- <key>gui_hint</key>
- <value>1,0,1,2</value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
<key>_coordinate</key>
- <value>(1433, 160)</value>
+ <value>(402, 322)</value>
</param>
<param>
<key>_rotation</key>
@@ -799,156 +768,6 @@
</param>
</block>
<block>
- <key>qtgui_const_sink_x</key>
- <param>
- <key>id</key>
- <value>qtgui_const_sink_x_0_0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>type</key>
- <value>complex</value>
- </param>
- <param>
- <key>name</key>
- <value>QT GUI Plot</value>
- </param>
- <param>
- <key>size</key>
- <value>20000</value>
- </param>
- <param>
- <key>ymin</key>
- <value>-2</value>
- </param>
- <param>
- <key>ymax</key>
- <value>2</value>
- </param>
- <param>
- <key>xmin</key>
- <value>-2</value>
- </param>
- <param>
- <key>xmax</key>
- <value>2</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>0,1,1,1</value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(1399, 291)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>qtgui_time_sink_x</key>
- <param>
- <key>id</key>
- <value>qtgui_time_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>QT GUI Plot</value>
- </param>
- <param>
- <key>size</key>
- <value>50000</value>
- </param>
- <param>
- <key>srate</key>
- <value>samp_rate</value>
- </param>
- <param>
- <key>ymin</key>
- <value>-2</value>
- </param>
- <param>
- <key>ymax</key>
- <value>2</value>
- </param>
- <param>
- <key>nconnections</key>
- <value>1</value>
- </param>
- <param>
- <key>update_time</key>
- <value>0.10</value>
- </param>
- <param>
- <key>tr_mode</key>
- <value>qtgui.TRIG_MODE_TAG</value>
- </param>
- <param>
- <key>tr_slope</key>
- <value>qtgui.TRIG_SLOPE_POS</value>
- </param>
- <param>
- <key>tr_level</key>
- <value>1</value>
- </param>
- <param>
- <key>tr_delay</key>
- <value>0.1</value>
- </param>
- <param>
- <key>tr_chan</key>
- <value>0</value>
- </param>
- <param>
- <key>tr_tag</key>
- <value>time_est</value>
- </param>
- <param>
- <key>entags</key>
- <value>True</value>
- </param>
- <param>
- <key>gui_hint</key>
- <value>0,0,1,1</value>
- </param>
- <param>
- <key>affinity</key>
- <value>0</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(1397, 358)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
<key>variable_qtgui_range</key>
<param>
<key>id</key>
@@ -1219,6 +1038,10 @@
<value>0</value>
</param>
<param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
<key>_coordinate</key>
<value>(790, 289)</value>
</param>
@@ -1266,6 +1089,10 @@
<value>0</value>
</param>
<param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
<key>_coordinate</key>
<value>(30, 324)</value>
</param>
@@ -1297,6 +1124,10 @@
<value>0</value>
</param>
<param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
<key>_coordinate</key>
<value>(55, 274)</value>
</param>
@@ -1340,6 +1171,10 @@
<value>0</value>
</param>
<param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
<key>_coordinate</key>
<value>(247, 318)</value>
</param>
@@ -1426,6 +1261,10 @@
<value>0</value>
</param>
<param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
<key>_coordinate</key>
<value>(1125, 617)</value>
</param>
@@ -1516,6 +1355,10 @@
<value>0</value>
</param>
<param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
<key>_coordinate</key>
<value>(752, 517)</value>
</param>
@@ -1547,6 +1390,10 @@
<value>0</value>
</param>
<param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
<key>_coordinate</key>
<value>(576, 517)</value>
</param>
@@ -1590,6 +1437,10 @@
<value>0</value>
</param>
<param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
<key>_coordinate</key>
<value>(390, 504)</value>
</param>
@@ -1617,6 +1468,14 @@
<value>1</value>
</param>
<param>
+ <key>num_outputs</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>bus_conns</key>
+ <value>[[0,],]</value>
+ </param>
+ <param>
<key>affinity</key>
<value></value>
</param>
@@ -1625,6 +1484,10 @@
<value>0</value>
</param>
<param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
<key>_coordinate</key>
<value>(210, 538)</value>
</param>
@@ -1668,6 +1531,10 @@
<value>0</value>
</param>
<param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
<key>_coordinate</key>
<value>(923, 518)</value>
</param>
@@ -1703,6 +1570,10 @@
<value>0</value>
</param>
<param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
<key>_coordinate</key>
<value>(1112, 482)</value>
</param>
@@ -1738,6 +1609,10 @@
<value>samp_rate</value>
</param>
<param>
+ <key>autoscale</key>
+ <value>False</value>
+ </param>
+ <param>
<key>ymin</key>
<value>-2</value>
</param>
@@ -1754,6 +1629,14 @@
<value>0.10</value>
</param>
<param>
+ <key>entags</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value>2,0,1,2</value>
+ </param>
+ <param>
<key>tr_mode</key>
<value>qtgui.TRIG_MODE_TAG</value>
</param>
@@ -1778,12 +1661,244 @@
<value>time_est</value>
</param>
<param>
- <key>entags</key>
- <value>True</value>
+ <key>label1</key>
+ <value></value>
</param>
<param>
- <key>gui_hint</key>
- <value>2,0,1,2</value>
+ <key>width1</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color1</key>
+ <value>"blue"</value>
+ </param>
+ <param>
+ <key>style1</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker1</key>
+ <value>-1</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>style2</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker2</key>
+ <value>-1</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>style3</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker3</key>
+ <value>-1</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>style4</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker4</key>
+ <value>-1</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>style5</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker5</key>
+ <value>-1</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>style6</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker6</key>
+ <value>-1</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>style7</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker7</key>
+ <value>-1</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>style8</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker8</key>
+ <value>-1</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>style9</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker9</key>
+ <value>-1</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>"blue"</value>
+ </param>
+ <param>
+ <key>style10</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker10</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>alpha10</key>
+ <value>1.0</value>
</param>
<param>
<key>affinity</key>
@@ -1821,6 +1936,10 @@
<value>0</value>
</param>
<param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
<key>_coordinate</key>
<value>(1111, 433)</value>
</param>
@@ -1829,6 +1948,975 @@
<value>180</value>
</param>
</block>
+ <block>
+ <key>qtgui_time_sink_x</key>
+ <param>
+ <key>id</key>
+ <value>qtgui_time_sink_x_1</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>float</value>
+ </param>
+ <param>
+ <key>name</key>
+ <value>QT GUI Plot</value>
+ </param>
+ <param>
+ <key>size</key>
+ <value>80000</value>
+ </param>
+ <param>
+ <key>srate</key>
+ <value>samp_rate</value>
+ </param>
+ <param>
+ <key>autoscale</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>ymin</key>
+ <value>-200</value>
+ </param>
+ <param>
+ <key>ymax</key>
+ <value>400</value>
+ </param>
+ <param>
+ <key>nconnections</key>
+ <value>3</value>
+ </param>
+ <param>
+ <key>update_time</key>
+ <value>0.10</value>
+ </param>
+ <param>
+ <key>entags</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value>1,0,1,2</value>
+ </param>
+ <param>
+ <key>tr_mode</key>
+ <value>qtgui.TRIG_MODE_NORM</value>
+ </param>
+ <param>
+ <key>tr_slope</key>
+ <value>qtgui.TRIG_SLOPE_POS</value>
+ </param>
+ <param>
+ <key>tr_level</key>
+ <value>200</value>
+ </param>
+ <param>
+ <key>tr_delay</key>
+ <value>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>|corr|^2</value>
+ </param>
+ <param>
+ <key>width1</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color1</key>
+ <value>"blue"</value>
+ </param>
+ <param>
+ <key>style1</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker1</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>alpha1</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label2</key>
+ <value>Re{corr}</value>
+ </param>
+ <param>
+ <key>width2</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color2</key>
+ <value>"red"</value>
+ </param>
+ <param>
+ <key>style2</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker2</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>alpha2</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label3</key>
+ <value>Im{corr}</value>
+ </param>
+ <param>
+ <key>width3</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color3</key>
+ <value>"green"</value>
+ </param>
+ <param>
+ <key>style3</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker3</key>
+ <value>-1</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>style4</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker4</key>
+ <value>-1</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>style5</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker5</key>
+ <value>-1</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>style6</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker6</key>
+ <value>-1</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>style7</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker7</key>
+ <value>-1</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>style8</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker8</key>
+ <value>-1</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>style9</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker9</key>
+ <value>-1</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>"blue"</value>
+ </param>
+ <param>
+ <key>style10</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker10</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>alpha10</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(1433, 160)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>qtgui_time_sink_x</key>
+ <param>
+ <key>id</key>
+ <value>qtgui_time_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>QT GUI Plot</value>
+ </param>
+ <param>
+ <key>size</key>
+ <value>50000</value>
+ </param>
+ <param>
+ <key>srate</key>
+ <value>samp_rate</value>
+ </param>
+ <param>
+ <key>autoscale</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>ymin</key>
+ <value>-2</value>
+ </param>
+ <param>
+ <key>ymax</key>
+ <value>2</value>
+ </param>
+ <param>
+ <key>nconnections</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>update_time</key>
+ <value>0.10</value>
+ </param>
+ <param>
+ <key>entags</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value>0,0,1,1</value>
+ </param>
+ <param>
+ <key>tr_mode</key>
+ <value>qtgui.TRIG_MODE_TAG</value>
+ </param>
+ <param>
+ <key>tr_slope</key>
+ <value>qtgui.TRIG_SLOPE_POS</value>
+ </param>
+ <param>
+ <key>tr_level</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>tr_delay</key>
+ <value>0.1</value>
+ </param>
+ <param>
+ <key>tr_chan</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>tr_tag</key>
+ <value>time_est</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>style1</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker1</key>
+ <value>-1</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>style2</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker2</key>
+ <value>-1</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>style3</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker3</key>
+ <value>-1</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>style4</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker4</key>
+ <value>-1</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>style5</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker5</key>
+ <value>-1</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>style6</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker6</key>
+ <value>-1</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>style7</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker7</key>
+ <value>-1</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>style8</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker8</key>
+ <value>-1</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>style9</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker9</key>
+ <value>-1</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>"blue"</value>
+ </param>
+ <param>
+ <key>style10</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker10</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>alpha10</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(1398, 370)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>qtgui_const_sink_x</key>
+ <param>
+ <key>id</key>
+ <value>qtgui_const_sink_x_0_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>complex</value>
+ </param>
+ <param>
+ <key>name</key>
+ <value>QT GUI Plot</value>
+ </param>
+ <param>
+ <key>size</key>
+ <value>20000</value>
+ </param>
+ <param>
+ <key>autoscale</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>ymin</key>
+ <value>-2</value>
+ </param>
+ <param>
+ <key>ymax</key>
+ <value>2</value>
+ </param>
+ <param>
+ <key>xmin</key>
+ <value>-2</value>
+ </param>
+ <param>
+ <key>xmax</key>
+ <value>2</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>0,1,1,1</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>style1</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>marker1</key>
+ <value>0</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>style2</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>marker2</key>
+ <value>0</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>"red"</value>
+ </param>
+ <param>
+ <key>style3</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>marker3</key>
+ <value>0</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>"red"</value>
+ </param>
+ <param>
+ <key>style4</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>marker4</key>
+ <value>0</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>"red"</value>
+ </param>
+ <param>
+ <key>style5</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>marker5</key>
+ <value>0</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>"red"</value>
+ </param>
+ <param>
+ <key>style6</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>marker6</key>
+ <value>0</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>"red"</value>
+ </param>
+ <param>
+ <key>style7</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>marker7</key>
+ <value>0</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>"red"</value>
+ </param>
+ <param>
+ <key>style8</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>marker8</key>
+ <value>0</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>"red"</value>
+ </param>
+ <param>
+ <key>style9</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>marker9</key>
+ <value>0</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>"red"</value>
+ </param>
+ <param>
+ <key>style10</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>marker10</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>alpha10</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(1399, 291)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
<connection>
<source_block_id>digital_costas_loop_cc_0</source_block_id>
<sink_block_id>qtgui_const_sink_x_0_0</sink_block_id>
diff --git a/gr-digital/grc/digital_block_tree.xml b/gr-digital/grc/digital_block_tree.xml
index bab053c6fe..9eca98ddb1 100644
--- a/gr-digital/grc/digital_block_tree.xml
+++ b/gr-digital/grc/digital_block_tree.xml
@@ -1,19 +1,19 @@
<?xml version="1.0"?>
<!--
Copyright 2011-2013 Free Software Foundation, Inc.
-
+
This file is part of GNU Radio
-
+
GNU Radio is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
-
+
GNU Radio is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
along with GNU Radio; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street,
@@ -75,6 +75,8 @@
<block>digital_packet_headerparser_b</block>
<block>digital_packet_headerparser_b_default</block>
<block>digital_packet_sink</block>
+ <block>digital_hdlc_framer_pb</block>
+ <block>digital_hdlc_deframer_bp</block>
<block>digital_simple_framer</block>
<block>digital_simple_correlator</block>
</cat>
diff --git a/gr-digital/grc/digital_hdlc_deframer_bp.xml b/gr-digital/grc/digital_hdlc_deframer_bp.xml
index 4609d21d95..41bd37c7ee 100644
--- a/gr-digital/grc/digital_hdlc_deframer_bp.xml
+++ b/gr-digital/grc/digital_hdlc_deframer_bp.xml
@@ -1,8 +1,7 @@
<?xml version="1.0"?>
<block>
- <name>hdlc_deframer_bp</name>
+ <name>HDLC Deframer</name>
<key>digital_hdlc_deframer_bp</key>
- <category>digital</category>
<import>from gnuradio import digital</import>
<make>digital.hdlc_deframer_bp($frame_tag_name, $min, $max)</make>
<param>
diff --git a/gr-digital/grc/digital_hdlc_framer_pb.xml b/gr-digital/grc/digital_hdlc_framer_pb.xml
index 540764c092..8dc122d581 100644
--- a/gr-digital/grc/digital_hdlc_framer_pb.xml
+++ b/gr-digital/grc/digital_hdlc_framer_pb.xml
@@ -1,8 +1,7 @@
<?xml version="1.0"?>
<block>
- <name>hdlc_framer_pb</name>
+ <name>HDLC Framer</name>
<key>digital_hdlc_framer_pb</key>
- <category>digital</category>
<import>from gnuradio import digital</import>
<make>digital.hdlc_framer_pb($frame_tag_name)</make>
<param>
diff --git a/gr-digital/include/gnuradio/digital/costas_loop_cc.h b/gr-digital/include/gnuradio/digital/costas_loop_cc.h
index 5320d704c3..d924d969b7 100644
--- a/gr-digital/include/gnuradio/digital/costas_loop_cc.h
+++ b/gr-digital/include/gnuradio/digital/costas_loop_cc.h
@@ -1,19 +1,19 @@
/* -*- c++ -*- */
/*
* Copyright 2006,2011,2012 Free Software Foundation, Inc.
- *
+ *
* This file is part of GNU Radio
- *
+ *
* GNU Radio is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option)
* any later version.
- *
+ *
* GNU Radio is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with GNU Radio; see the file COPYING. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street,
@@ -30,7 +30,7 @@
namespace gr {
namespace digital {
- /*!
+ /*!
* \brief A Costas loop carrier recovery module.
* \ingroup synchronizers_blk
*
@@ -54,20 +54,20 @@ namespace gr {
* signal processing, pp. 20-36, 2002.
*
* http://rfdesign.com/images/archive/0102Feigin20.pdf
- *
+ *
* The Costas loop can have two output streams:
* \li stream 1 (required) is the baseband I and Q;
* \li stream 2 (optional) is the normalized frequency of the loop
*/
class DIGITAL_API costas_loop_cc
- : virtual public sync_block,
+ : virtual public sync_block,
virtual public blocks::control_loop
{
public:
// gr::digital::costas_loop_cc::sptr
typedef boost::shared_ptr<costas_loop_cc> sptr;
- /*!
+ /*!
* Make a Costas loop carrier recovery block.
*
* \param loop_bw internal 2nd order loop bandwidth (~ 2pi/100)
@@ -75,7 +75,7 @@ namespace gr {
*/
static sptr make(float loop_bw, int order);
- /*!
+ /*!
* Returns the current value of the loop error.
*/
virtual float error() const = 0;
diff --git a/gr-digital/include/gnuradio/digital/mpsk_receiver_cc.h b/gr-digital/include/gnuradio/digital/mpsk_receiver_cc.h
index 94e765d4ac..618d192771 100644
--- a/gr-digital/include/gnuradio/digital/mpsk_receiver_cc.h
+++ b/gr-digital/include/gnuradio/digital/mpsk_receiver_cc.h
@@ -25,6 +25,7 @@
#include <gnuradio/digital/api.h>
#include <gnuradio/block.h>
+#include <gnuradio/blocks/control_loop.h>
namespace gr {
namespace digital {
@@ -65,7 +66,9 @@ namespace gr {
* self-noise.
*
*/
- class DIGITAL_API mpsk_receiver_cc : virtual public block
+ class DIGITAL_API mpsk_receiver_cc
+ : virtual public block,
+ virtual public blocks::control_loop
{
public:
// gr::digital::mpsk_receiver_cc::sptr
@@ -74,27 +77,27 @@ namespace gr {
/*!
* \brief Make a M-PSK receiver block.
*
- * \param M modulation order of the M-PSK modulation
- * \param theta any constant phase rotation from the real axis of the constellation
- * \param loop_bw Loop bandwidth to set gains of phase/freq tracking loop
- * \param fmin minimum normalized frequency value the loop can achieve
- * \param fmax maximum normalized frequency value the loop can achieve
- * \param mu initial parameter for the interpolator [0,1]
- * \param gain_mu gain parameter of the M&M error signal to adjust mu (~0.05)
- * \param omega initial value for the number of symbols between samples (~number of samples/symbol)
- * \param gain_omega gain parameter to adjust omega based on the error (~omega^2/4)
- * \param omega_rel sets the maximum (omega*(1+omega_rel)) and minimum (omega*(1+omega_rel)) omega (~0.005)
+ * \param M modulation order of the M-PSK modulation
+ * \param theta any constant phase rotation from the real axis of the constellation
+ * \param loop_bw Loop bandwidth to set gains of phase/freq tracking loop
+ * \param fmin minimum normalized frequency value the loop can achieve
+ * \param fmax maximum normalized frequency value the loop can achieve
+ * \param mu initial parameter for the interpolator [0,1]
+ * \param gain_mu gain parameter of the M&M error signal to adjust mu (~0.05)
+ * \param omega initial value for the number of symbols between samples (~number of samples/symbol)
+ * \param gain_omega gain parameter to adjust omega based on the error (~omega^2/4)
+ * \param omega_rel sets the maximum (omega*(1+omega_rel)) and minimum (omega*(1+omega_rel)) omega (~0.005)
*
* The constructor also chooses which phase detector and
* decision maker to use in the work loop based on the value of
* M.
*/
- static sptr make(unsigned int M, float theta,
+ static sptr make(unsigned int M, float theta,
float loop_bw,
float fmin, float fmax,
- float mu, float gain_mu,
+ float mu, float gain_mu,
float omega, float gain_omega, float omega_rel);
-
+
//! Returns the modulation order (M) currently set
virtual float modulation_order() const = 0;
@@ -124,8 +127,8 @@ namespace gr {
//! Sets value of mu
virtual void set_mu(float mu) = 0;
-
- //! Sets value of omega and its min and max values
+
+ //! Sets value of omega and its min and max values
virtual void set_omega(float omega) = 0;
//! Sets value for mu gain factor
diff --git a/gr-digital/lib/correlate_access_code_tag_bb_impl.cc b/gr-digital/lib/correlate_access_code_tag_bb_impl.cc
index f97667629e..f6574dd517 100644
--- a/gr-digital/lib/correlate_access_code_tag_bb_impl.cc
+++ b/gr-digital/lib/correlate_access_code_tag_bb_impl.cc
@@ -79,7 +79,7 @@ namespace gr {
return false;
// set d_len bottom bits to 1.
- d_mask = (1 << d_len) - 1;
+ d_mask = (1ULL << d_len) - 1;
d_access_code = 0;
for(unsigned i=0; i < d_len; i++){
diff --git a/gr-digital/lib/costas_loop_cc_impl.cc b/gr-digital/lib/costas_loop_cc_impl.cc
index 36a125b437..36f95ac022 100644
--- a/gr-digital/lib/costas_loop_cc_impl.cc
+++ b/gr-digital/lib/costas_loop_cc_impl.cc
@@ -1,19 +1,19 @@
/* -*- c++ -*- */
/*
* Copyright 2006,2010-2012 Free Software Foundation, Inc.
- *
+ *
* This file is part of GNU Radio
- *
+ *
* GNU Radio is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option)
* any later version.
- *
+ *
* GNU Radio is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with GNU Radio; see the file COPYING. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street,
@@ -62,7 +62,7 @@ namespace gr {
d_phase_detector = &costas_loop_cc_impl::phase_detector_8;
break;
- default:
+ default:
throw std::invalid_argument("order must be 2, 4, or 8");
break;
}
@@ -145,19 +145,19 @@ namespace gr {
tags.erase(tags.begin());
}
}
-
+
nco_out = gr_expj(-d_phase);
optr[i] = iptr[i] * nco_out;
d_error = (*this.*d_phase_detector)(optr[i]);
d_error = gr::branchless_clip(d_error, 1.0);
-
+
advance_loop(d_error);
phase_wrap();
frequency_limit();
foptr[i] = d_freq;
- }
+ }
}
else {
for(int i = 0; i < noutput_items; i++) {
@@ -219,7 +219,7 @@ namespace gr {
pmt::mp(0.0f), pmt::mp(2.0f), pmt::mp(0.0f),
"", "Loop bandwidth", RPC_PRIVLVL_MIN,
DISPTIME | DISPOPTSTRIP)));
-
+
// Setters
add_rpc_variable(
rpcbasic_sptr(new rpcbasic_register_set<control_loop, float>(
diff --git a/gr-digital/lib/costas_loop_cc_impl.h b/gr-digital/lib/costas_loop_cc_impl.h
index 0559f907aa..665724236b 100644
--- a/gr-digital/lib/costas_loop_cc_impl.h
+++ b/gr-digital/lib/costas_loop_cc_impl.h
@@ -1,19 +1,19 @@
/* -*- c++ -*- */
/*
* Copyright 2006,2011,2012 Free Software Foundation, Inc.
- *
+ *
* This file is part of GNU Radio
- *
+ *
* GNU Radio is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option)
* any later version.
- *
+ *
* GNU Radio is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with GNU Radio; see the file COPYING. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street,
@@ -62,7 +62,7 @@ namespace gr {
float error() const;
void setup_rpc();
-
+
int work(int noutput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items);
diff --git a/gr-digital/lib/mpsk_receiver_cc_impl.cc b/gr-digital/lib/mpsk_receiver_cc_impl.cc
index 0d7464a0fb..d6c2ae6fa3 100644
--- a/gr-digital/lib/mpsk_receiver_cc_impl.cc
+++ b/gr-digital/lib/mpsk_receiver_cc_impl.cc
@@ -37,35 +37,35 @@ namespace gr {
#define VERBOSE_MM 0 // Used for debugging symbol timing loop
#define VERBOSE_COSTAS 0 // Used for debugging phase and frequency tracking
- mpsk_receiver_cc::sptr
+ mpsk_receiver_cc::sptr
mpsk_receiver_cc::make(unsigned int M, float theta,
float loop_bw,
float fmin, float fmax,
- float mu, float gain_mu,
+ float mu, float gain_mu,
float omega, float gain_omega, float omega_rel)
{
return gnuradio::get_initial_sptr
(new mpsk_receiver_cc_impl(M, theta,
loop_bw,
fmin, fmax,
- mu, gain_mu,
- omega, gain_omega,
+ mu, gain_mu,
+ omega, gain_omega,
omega_rel));
}
- mpsk_receiver_cc_impl::mpsk_receiver_cc_impl(unsigned int M, float theta,
+ mpsk_receiver_cc_impl::mpsk_receiver_cc_impl(unsigned int M, float theta,
float loop_bw,
float fmin, float fmax,
- float mu, float gain_mu,
+ float mu, float gain_mu,
float omega, float gain_omega,
float omega_rel)
: block("mpsk_receiver_cc",
- io_signature::make(1, 1, sizeof(gr_complex)),
- io_signature::make(1, 1, sizeof(gr_complex))),
- blocks::control_loop(loop_bw, fmax, fmin),
- d_M(M), d_theta(theta),
+ io_signature::make(1, 1, sizeof(gr_complex)),
+ io_signature::make(1, 1, sizeof(gr_complex))),
+ blocks::control_loop(loop_bw, fmax, fmin),
+ d_M(M), d_theta(theta),
d_current_const_point(0),
- d_mu(mu), d_gain_mu(gain_mu), d_gain_omega(gain_omega),
+ d_mu(mu), d_gain_mu(gain_mu), d_gain_omega(gain_omega),
d_omega_rel(omega_rel), d_max_omega(0), d_min_omega(0),
d_p_2T(0), d_p_1T(0), d_p_0T(0), d_c_2T(0), d_c_1T(0), d_c_0T(0)
{
@@ -78,13 +78,13 @@ namespace gr {
throw std::out_of_range("clock rate must be > 0");
if(gain_mu < 0 || gain_omega < 0)
throw std::out_of_range("Gains must be non-negative");
-
+
assert(d_interp->ntaps() <= DLLEN);
-
+
// zero double length delay line.
for(unsigned int i = 0; i < 2 * DLLEN; i++)
d_dl[i] = gr_complex(0.0,0.0);
-
+
set_modulation_order(d_M);
}
@@ -98,7 +98,7 @@ namespace gr {
{
// build the constellation vector from M
make_constellation();
-
+
// Select a phase detector and a decision maker for the modulation order
switch(d_M) {
case 2: // optimized algorithms for BPSK
@@ -150,7 +150,7 @@ namespace gr {
else
phase_error = -sample.real();
}
-
+
return phase_error;
}
@@ -193,7 +193,7 @@ namespace gr {
// the Euclidean distance (error) with the sample
for(unsigned int m = 0; m < d_M; m++) {
gr_complex diff = norm(d_constellation[m] - sample);
-
+
if(fabs(diff.real()) < min_s) {
min_s = fabs(diff.real());
min_m = m;
@@ -224,10 +224,10 @@ namespace gr {
d_phase -= M_TWOPI;
while(d_phase < -M_TWOPI)
d_phase += M_TWOPI;
-
+
nco = gr_expj(d_phase+d_theta); // get the NCO value for derotating the current sample
sample = nco*symbol; // get the downconverted symbol
-
+
// Fill up the delay line for the interpolator
d_dl[d_dl_idx] = sample;
d_dl[(d_dl_idx + DLLEN)] = sample; // put this in the second half of the buffer for overflows
@@ -248,24 +248,24 @@ namespace gr {
d_p_0T = sample;
d_c_2T = d_c_1T;
d_c_1T = d_c_0T;
-
+
d_current_const_point = (*this.*d_decision)(d_p_0T); // make a decision on the sample value
d_c_0T = d_constellation[d_current_const_point];
-
+
x = (d_c_0T - d_c_2T) * conj(d_p_1T);
y = (d_p_0T - d_p_2T) * conj(d_c_1T);
u = y - x;
mm_error = u.real(); // the error signal is in the real part
mm_error = gr::branchless_clip(mm_error, 1.0); // limit mm_val
-
+
d_omega = d_omega + d_gain_omega * mm_error; // update omega based on loop error
d_omega = d_omega_mid + gr::branchless_clip(d_omega-d_omega_mid, d_omega_rel); // make sure we don't walk away
-
+
d_mu += d_omega + d_gain_mu * mm_error; // update mu based on loop error
-
+
#if VERBOSE_MM
- printf("mm: mu: %f omega: %f mm_error: %f sample: %f+j%f constellation: %f+j%f\n",
- d_mu, d_omega, mm_error, sample.real(), sample.imag(),
+ printf("mm: mu: %f omega: %f mm_error: %f sample: %f+j%f constellation: %f+j%f\n",
+ d_mu, d_omega, mm_error, sample.real(), sample.imag(),
d_constellation[d_current_const_point].real(), d_constellation[d_current_const_point].imag());
#endif
}
@@ -278,14 +278,14 @@ namespace gr {
// Make phase and frequency corrections based on sampled value
phase_error = (*this.*d_phase_error_detector)(sample);
-
+
advance_loop(phase_error);
phase_wrap();
frequency_limit();
-
+
#if VERBOSE_COSTAS
printf("cl: phase_error: %f phase: %f freq: %f sample: %f+j%f constellation: %f+j%f\n",
- phase_error, d_phase, d_freq, sample.real(), sample.imag(),
+ phase_error, d_phase, d_freq, sample.real(), sample.imag(),
d_constellation[d_current_const_point].real(), d_constellation[d_current_const_point].imag());
#endif
}
@@ -306,7 +306,7 @@ namespace gr {
mm_sampler(in[i]); // puts symbols into a buffer and adjusts d_mu
i++;
}
-
+
if(i < ninput_items[0]) {
gr_complex interp_sample = d_interp->interpolate(&d_dl[d_dl_idx], d_mu);
diff --git a/gr-digital/lib/mpsk_receiver_cc_impl.h b/gr-digital/lib/mpsk_receiver_cc_impl.h
index f17f88cb98..48a9e43e58 100644
--- a/gr-digital/lib/mpsk_receiver_cc_impl.h
+++ b/gr-digital/lib/mpsk_receiver_cc_impl.h
@@ -25,7 +25,6 @@
#include <gnuradio/digital/mpsk_receiver_cc.h>
#include <gnuradio/attributes.h>
-#include <gnuradio/blocks/control_loop.h>
#include <gnuradio/gr_complex.h>
#include <fstream>
#include <gnuradio/filter/mmse_fir_interpolator_cc.h>
@@ -33,14 +32,13 @@
namespace gr {
namespace digital {
- class mpsk_receiver_cc_impl
- : public mpsk_receiver_cc, public blocks::control_loop
+ class mpsk_receiver_cc_impl : public mpsk_receiver_cc
{
public:
- mpsk_receiver_cc_impl(unsigned int M, float theta,
+ mpsk_receiver_cc_impl(unsigned int M, float theta,
float loop_bw,
float fmin, float fmax,
- float mu, float gain_mu,
+ float mu, float gain_mu,
float omega, float gain_omega, float omega_rel);
~mpsk_receiver_cc_impl();
@@ -79,9 +77,9 @@ namespace gr {
//! Sets value of mu
void set_mu(float mu) { d_mu = mu; }
-
- //! Sets value of omega and its min and max values
- void set_omega(float omega) {
+
+ //! Sets value of omega and its min and max values
+ void set_omega(float omega) {
d_omega = omega;
d_min_omega = omega*(1.0 - d_omega_rel);
d_max_omega = omega*(1.0 + d_omega_rel);
@@ -96,7 +94,7 @@ namespace gr {
//! Sets the relative omega limit and resets omega min/max values
void set_gain_omega_rel(float omega_rel);
-
+
protected:
void make_constellation();
void mm_sampler(const gr_complex symbol);
@@ -174,7 +172,7 @@ namespace gr {
* \returns the index to d_constellation that minimizes the error/
*/
unsigned int decision_bpsk(gr_complex sample) const;
-
+
/*!
* \brief Decision maker for QPSK constellation.
*
@@ -193,7 +191,7 @@ namespace gr {
float d_theta;
/*!
- * \brief Decision maker function pointer
+ * \brief Decision maker function pointer
*
* \param sample the baseband I&Q sample from which to make the decision
*
@@ -215,7 +213,7 @@ namespace gr {
gr_complex d_c_2T, d_c_1T, d_c_0T;
/*!
- * \brief Phase error detector function pointer
+ * \brief Phase error detector function pointer
*
* \param sample the I&Q sample from which to determine the phase error
*
@@ -227,13 +225,13 @@ namespace gr {
//! get interpolated value
gr::filter::mmse_fir_interpolator_cc *d_interp;
-
+
//! delay line length.
static const unsigned int DLLEN = 8;
-
+
//! delay line plus some length for overflow protection
__GR_ATTR_ALIGNED(8) gr_complex d_dl[2*DLLEN];
-
+
//! index to delay line
unsigned int d_dl_idx;
};
diff --git a/gr-filter/python/filter/pfb.py b/gr-filter/python/filter/pfb.py
index fac2be49d9..070412503b 100644
--- a/gr-filter/python/filter/pfb.py
+++ b/gr-filter/python/filter/pfb.py
@@ -205,24 +205,43 @@ class arb_resampler_ccf(gr.hier_block2):
if (taps is not None) and (len(taps) > 0):
self._taps = taps
else:
- # Create a filter that covers the full bandwidth of the input signal
- bw = 0.4
- tb = 0.2
- ripple = 0.1
- #self._taps = filter.firdes.low_pass_2(self._size, self._size, bw, tb, atten)
- made = False
- while not made:
- try:
- self._taps = optfir.low_pass(self._size, self._size, bw, bw+tb, ripple, atten)
- made = True
- except RuntimeError:
- ripple += 0.01
- made = False
- print("Warning: set ripple to %.4f dB. If this is a problem, adjust the attenuation or create your own filter taps." % (ripple))
-
- # Build in an exit strategy; if we've come this far, it ain't working.
- if(ripple >= 1.0):
- raise RuntimeError("optfir could not generate an appropriate filter.")
+ # Create a filter that covers the full bandwidth of the output signal
+
+ # If rate >= 1, we need to prevent images in the output,
+ # so we have to filter it to less than half the channel
+ # width of 0.5. If rate < 1, we need to filter to less
+ # than half the output signal's bw to avoid aliasing, so
+ # the half-band here is 0.5*rate.
+ percent = 0.80
+ if(self._rate < 1):
+ halfband = 0.5*self._rate
+ bw = percent*halfband
+ tb = (percent/2.0)*halfband
+ ripple = 0.1
+
+ # As we drop the bw factor, the optfir filter has a harder time converging;
+ # using the firdes method here for better results.
+ self._taps = filter.firdes.low_pass_2(self._size, self._size, bw, tb, atten,
+ filter.firdes.WIN_BLACKMAN_HARRIS)
+ else:
+ halfband = 0.5
+ bw = percent*halfband
+ tb = (percent/2.0)*halfband
+ ripple = 0.1
+
+ made = False
+ while not made:
+ try:
+ self._taps = optfir.low_pass(self._size, self._size, bw, bw+tb, ripple, atten)
+ made = True
+ except RuntimeError:
+ ripple += 0.01
+ made = False
+ print("Warning: set ripple to %.4f dB. If this is a problem, adjust the attenuation or create your own filter taps." % (ripple))
+
+ # Build in an exit strategy; if we've come this far, it ain't working.
+ if(ripple >= 1.0):
+ raise RuntimeError("optfir could not generate an appropriate filter.")
self.pfb = filter.pfb_arb_resampler_ccf(self._rate, self._taps, self._size)
#print "PFB has %d taps\n" % (len(self._taps),)
@@ -259,23 +278,42 @@ class arb_resampler_fff(gr.hier_block2):
self._taps = taps
else:
# Create a filter that covers the full bandwidth of the input signal
- bw = 0.4
- tb = 0.2
- ripple = 0.1
- #self._taps = filter.firdes.low_pass_2(self._size, self._size, bw, tb, atten)
- made = False
- while not made:
- try:
- self._taps = optfir.low_pass(self._size, self._size, bw, bw+tb, ripple, atten)
- made = True
- except RuntimeError:
- ripple += 0.01
- made = False
- print("Warning: set ripple to %.4f dB. If this is a problem, adjust the attenuation or create your own filter taps." % (ripple))
- # Build in an exit strategy; if we've come this far, it ain't working.
- if(ripple >= 1.0):
- raise RuntimeError("optfir could not generate an appropriate filter.")
+ # If rate >= 1, we need to prevent images in the output,
+ # so we have to filter it to less than half the channel
+ # width of 0.5. If rate < 1, we need to filter to less
+ # than half the output signal's bw to avoid aliasing, so
+ # the half-band here is 0.5*rate.
+ percent = 0.80
+ if(self._rate < 1):
+ halfband = 0.5*self._rate
+ bw = percent*halfband
+ tb = (percent/2.0)*halfband
+ ripple = 0.1
+
+ # As we drop the bw factor, the optfir filter has a harder time converging;
+ # using the firdes method here for better results.
+ self._taps = filter.firdes.low_pass_2(self._size, self._size, bw, tb, atten,
+ filter.firdes.WIN_BLACKMAN_HARRIS)
+ else:
+ halfband = 0.5
+ bw = percent*halfband
+ tb = (percent/2.0)*halfband
+ ripple = 0.1
+
+ made = False
+ while not made:
+ try:
+ self._taps = optfir.low_pass(self._size, self._size, bw, bw+tb, ripple, atten)
+ made = True
+ except RuntimeError:
+ ripple += 0.01
+ made = False
+ print("Warning: set ripple to %.4f dB. If this is a problem, adjust the attenuation or create your own filter taps." % (ripple))
+
+ # Build in an exit strategy; if we've come this far, it ain't working.
+ if(ripple >= 1.0):
+ raise RuntimeError("optfir could not generate an appropriate filter.")
self.pfb = filter.pfb_arb_resampler_fff(self._rate, self._taps, self._size)
#print "PFB has %d taps\n" % (len(self._taps),)
diff --git a/gr-qtgui/grc/qtgui_const_sink_x.xml b/gr-qtgui/grc/qtgui_const_sink_x.xml
index 52c8bde489..08f9064648 100644
--- a/gr-qtgui/grc/qtgui_const_sink_x.xml
+++ b/gr-qtgui/grc/qtgui_const_sink_x.xml
@@ -22,17 +22,17 @@ self.$(id).set_x_axis($xmin, $xmax)
self.$(id).enable_autoscale($autoscale)
labels = [$label1, $label2, $label3, $label4, $label5,
- $label6, $label7, $label8, $label9]
+ $label6, $label7, $label8, $label9, $label10]
widths = [$width1, $width2, $width3, $width4, $width5,
- $width6, $width7, $width8, $width9]
+ $width6, $width7, $width8, $width9, $width10]
colors = [$color1, $color2, $color3, $color4, $color5,
- $color6, $color7, $color8, $color9]
+ $color6, $color7, $color8, $color9, $color10]
styles = [$style1, $style2, $style3, $style4, $style5,
- $style6, $style7, $style8, $style9]
+ $style6, $style7, $style8, $style9, $style10]
markers = [$marker1, $marker2, $marker3, $marker4, $marker5,
- $marker6, $marker7, $marker8, $marker9]
+ $marker6, $marker7, $marker8, $marker9, $marker10]
alphas = [$alpha1, $alpha2, $alpha3, $alpha4, $alpha5,
- $alpha6, $alpha7, $alpha8, $alpha9]
+ $alpha6, $alpha7, $alpha8, $alpha9, $alpha10]
for i in xrange($nconnections):
if len(labels[i]) == 0:
self.$(id).set_line_label(i, "Data {0}".format(i))
@@ -293,1244 +293,402 @@ $(gui_hint()($win))</make>
<param>
+ <base_key>label1</base_key>
<name>Line 2 Label</name>
<key>label2</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 2 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>width1</base_key>
<name>Line 2 Width</name>
<key>width2</key>
- <value>1</value>
- <type>int</type>
<hide>#if int($nconnections()) >= 2 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 2 Color</name>
<key>color2</key>
- <type>enum</type>
+ <value>"red"</value>
<hide>#if int($nconnections()) >= 2 then 'part' else 'all'#</hide>
- <option>
- <name>Red</name>
- <key>"red"</key>
- </option>
- <option>
- <name>Green</name>
- <key>"green"</key>
- </option>
- <option>
- <name>Black</name>
- <key>"black"</key>
- </option>
- <option>
- <name>Cyan</name>
- <key>"cyan"</key>
- </option>
- <option>
- <name>Magenta</name>
- <key>"magenta"</key>
- </option>
- <option>
- <name>Yellow</name>
- <key>"yellow"</key>
- </option>
- <option>
- <name>Dark Red</name>
- <key>"dark red"</key>
- </option>
- <option>
- <name>Dark Green</name>
- <key>"dark green"</key>
- </option>
- <option>
- <name>Dark Blue</name>
- <key>"Dark Blue"</key>
- </option>
- <option>
- <name>Blue</name>
- <key>"blue"</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>style1</base_key>
<name>Line 2 Style</name>
<key>style2</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 2 then 'part' else 'all'#</hide>
- <option>
- <name>None</name>
- <key>0</key>
- </option>
- <option>
- <name>Solid</name>
- <key>1</key>
- </option>
- <option>
- <name>Dash</name>
- <key>2</key>
- </option>
- <option>
- <name>Dots</name>
- <key>3</key>
- </option>
- <option>
- <name>Dash-Dot</name>
- <key>4</key>
- </option>
- <option>
- <name>Dash-Dot-Dot</name>
- <key>5</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>marker1</base_key>
<name>Line 2 Marker</name>
<key>marker2</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 2 then 'part' else 'all'#</hide>
- <option>
- <name>Circle</name>
- <key>0</key>
- </option>
- <option>
- <name>Rectangle</name>
- <key>1</key>
- </option>
- <option>
- <name>Diamond</name>
- <key>2</key>
- </option>
- <option>
- <name>Triangle</name>
- <key>3</key>
- </option>
- <option>
- <name>Down Triangle</name>
- <key>4</key>
- </option>
- <option>
- <name>Left Triangle</name>
- <key>6</key>
- </option>
- <option>
- <name>Right Triangle</name>
- <key>7</key>
- </option>
- <option>
- <name>Cross</name>
- <key>8</key>
- </option>
- <option>
- <name>X-Cross</name>
- <key>9</key>
- </option>
- <option>
- <name>None</name>
- <key>-1</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 2 Alpha</name>
<key>alpha2</key>
- <value>1.0</value>
- <type>float</type>
<hide>#if int($nconnections()) >= 2 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 3 Label</name>
<key>label3</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 3 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>width1</base_key>
<name>Line 3 Width</name>
<key>width3</key>
- <value>1</value>
- <type>int</type>
<hide>#if int($nconnections()) >= 3 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 3 Color</name>
<key>color3</key>
- <type>enum</type>
+ <value>"red"</value>
<hide>#if int($nconnections()) >= 3 then 'part' else 'all'#</hide>
- <option>
- <name>Green</name>
- <key>"green"</key>
- </option>
- <option>
- <name>Black</name>
- <key>"black"</key>
- </option>
- <option>
- <name>Cyan</name>
- <key>"cyan"</key>
- </option>
- <option>
- <name>Magenta</name>
- <key>"magenta"</key>
- </option>
- <option>
- <name>Yellow</name>
- <key>"yellow"</key>
- </option>
- <option>
- <name>Dark Red</name>
- <key>"dark red"</key>
- </option>
- <option>
- <name>Dark Green</name>
- <key>"dark green"</key>
- </option>
- <option>
- <name>Dark Blue</name>
- <key>"Dark Blue"</key>
- </option>
- <option>
- <name>Blue</name>
- <key>"blue"</key>
- </option>
- <option>
- <name>Red</name>
- <key>"red"</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>style1</base_key>
<name>Line 3 Style</name>
<key>style3</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 3 then 'part' else 'all'#</hide>
- <option>
- <name>None</name>
- <key>0</key>
- </option>
- <option>
- <name>Solid</name>
- <key>1</key>
- </option>
- <option>
- <name>Dash</name>
- <key>2</key>
- </option>
- <option>
- <name>Dots</name>
- <key>3</key>
- </option>
- <option>
- <name>Dash-Dot</name>
- <key>4</key>
- </option>
- <option>
- <name>Dash-Dot-Dot</name>
- <key>5</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>marker1</base_key>
<name>Line 3 Marker</name>
<key>marker3</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 3 then 'part' else 'all'#</hide>
- <option>
- <name>Circle</name>
- <key>0</key>
- </option>
- <option>
- <name>Rectangle</name>
- <key>1</key>
- </option>
- <option>
- <name>Diamond</name>
- <key>2</key>
- </option>
- <option>
- <name>Triangle</name>
- <key>3</key>
- </option>
- <option>
- <name>Down Triangle</name>
- <key>4</key>
- </option>
- <option>
- <name>Left Triangle</name>
- <key>6</key>
- </option>
- <option>
- <name>Right Triangle</name>
- <key>7</key>
- </option>
- <option>
- <name>Cross</name>
- <key>8</key>
- </option>
- <option>
- <name>X-Cross</name>
- <key>9</key>
- </option>
- <option>
- <name>None</name>
- <key>-1</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 3 Alpha</name>
<key>alpha3</key>
- <value>1.0</value>
- <type>float</type>
<hide>#if int($nconnections()) >= 3 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 4 Label</name>
<key>label4</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 4 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>width1</base_key>
<name>Line 4 Width</name>
<key>width4</key>
- <value>1</value>
- <type>int</type>
<hide>#if int($nconnections()) >= 4 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 4 Color</name>
<key>color4</key>
- <type>enum</type>
+ <value>"red"</value>
<hide>#if int($nconnections()) >= 4 then 'part' else 'all'#</hide>
- <option>
- <name>Black</name>
- <key>"black"</key>
- </option>
- <option>
- <name>Cyan</name>
- <key>"cyan"</key>
- </option>
- <option>
- <name>Magenta</name>
- <key>"magenta"</key>
- </option>
- <option>
- <name>Yellow</name>
- <key>"yellow"</key>
- </option>
- <option>
- <name>Dark Red</name>
- <key>"dark red"</key>
- </option>
- <option>
- <name>Dark Green</name>
- <key>"dark green"</key>
- </option>
- <option>
- <name>Dark Blue</name>
- <key>"Dark Blue"</key>
- </option>
- <option>
- <name>Blue</name>
- <key>"blue"</key>
- </option>
- <option>
- <name>Red</name>
- <key>"red"</key>
- </option>
- <option>
- <name>Green</name>
- <key>"green"</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>style1</base_key>
<name>Line 4 Style</name>
<key>style4</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 4 then 'part' else 'all'#</hide>
- <option>
- <name>None</name>
- <key>0</key>
- </option>
- <option>
- <name>Solid</name>
- <key>1</key>
- </option>
- <option>
- <name>Dash</name>
- <key>2</key>
- </option>
- <option>
- <name>Dots</name>
- <key>3</key>
- </option>
- <option>
- <name>Dash-Dot</name>
- <key>4</key>
- </option>
- <option>
- <name>Dash-Dot-Dot</name>
- <key>5</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>marker1</base_key>
<name>Line 4 Marker</name>
<key>marker4</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 4 then 'part' else 'all'#</hide>
- <option>
- <name>Circle</name>
- <key>0</key>
- </option>
- <option>
- <name>Rectangle</name>
- <key>1</key>
- </option>
- <option>
- <name>Diamond</name>
- <key>2</key>
- </option>
- <option>
- <name>Triangle</name>
- <key>3</key>
- </option>
- <option>
- <name>Down Triangle</name>
- <key>4</key>
- </option>
- <option>
- <name>Left Triangle</name>
- <key>6</key>
- </option>
- <option>
- <name>Right Triangle</name>
- <key>7</key>
- </option>
- <option>
- <name>Cross</name>
- <key>8</key>
- </option>
- <option>
- <name>X-Cross</name>
- <key>9</key>
- </option>
- <option>
- <name>None</name>
- <key>-1</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 4 Alpha</name>
<key>alpha4</key>
- <value>1.0</value>
- <type>float</type>
<hide>#if int($nconnections()) >= 4 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 5 Label</name>
<key>label5</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 5 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>width1</base_key>
<name>Line 5 Width</name>
<key>width5</key>
- <value>1</value>
- <type>int</type>
<hide>#if int($nconnections()) >= 5 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 5 Color</name>
<key>color5</key>
- <type>enum</type>
+ <value>"red"</value>
<hide>#if int($nconnections()) >= 5 then 'part' else 'all'#</hide>
- <option>
- <name>Cyan</name>
- <key>"cyan"</key>
- </option>
- <option>
- <name>Magenta</name>
- <key>"magenta"</key>
- </option>
- <option>
- <name>Yellow</name>
- <key>"yellow"</key>
- </option>
- <option>
- <name>Dark Red</name>
- <key>"dark red"</key>
- </option>
- <option>
- <name>Dark Green</name>
- <key>"dark green"</key>
- </option>
- <option>
- <name>Dark Blue</name>
- <key>"Dark Blue"</key>
- </option>
- <option>
- <name>Blue</name>
- <key>"blue"</key>
- </option>
- <option>
- <name>Red</name>
- <key>"red"</key>
- </option>
- <option>
- <name>Green</name>
- <key>"green"</key>
- </option>
- <option>
- <name>Black</name>
- <key>"black"</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>style1</base_key>
<name>Line 5 Style</name>
<key>style5</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 5 then 'part' else 'all'#</hide>
- <option>
- <name>None</name>
- <key>0</key>
- </option>
- <option>
- <name>Solid</name>
- <key>1</key>
- </option>
- <option>
- <name>Dash</name>
- <key>2</key>
- </option>
- <option>
- <name>Dots</name>
- <key>3</key>
- </option>
- <option>
- <name>Dash-Dot</name>
- <key>4</key>
- </option>
- <option>
- <name>Dash-Dot-Dot</name>
- <key>5</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>marker1</base_key>
<name>Line 5 Marker</name>
<key>marker5</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 5 then 'part' else 'all'#</hide>
- <option>
- <name>Circle</name>
- <key>0</key>
- </option>
- <option>
- <name>Rectangle</name>
- <key>1</key>
- </option>
- <option>
- <name>Diamond</name>
- <key>2</key>
- </option>
- <option>
- <name>Triangle</name>
- <key>3</key>
- </option>
- <option>
- <name>Down Triangle</name>
- <key>4</key>
- </option>
- <option>
- <name>Left Triangle</name>
- <key>6</key>
- </option>
- <option>
- <name>Right Triangle</name>
- <key>7</key>
- </option>
- <option>
- <name>Cross</name>
- <key>8</key>
- </option>
- <option>
- <name>X-Cross</name>
- <key>9</key>
- </option>
- <option>
- <name>None</name>
- <key>-1</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 5 Alpha</name>
<key>alpha5</key>
- <value>1.0</value>
- <type>float</type>
<hide>#if int($nconnections()) >= 5 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 6 Label</name>
<key>label6</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 6 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>width1</base_key>
<name>Line 6 Width</name>
<key>width6</key>
- <value>1</value>
- <type>int</type>
<hide>#if int($nconnections()) >= 6 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 6 Color</name>
<key>color6</key>
- <type>enum</type>
+ <value>"red"</value>
<hide>#if int($nconnections()) >= 6 then 'part' else 'all'#</hide>
- <option>
- <name>Magenta</name>
- <key>"magenta"</key>
- </option>
- <option>
- <name>Yellow</name>
- <key>"yellow"</key>
- </option>
- <option>
- <name>Dark Red</name>
- <key>"dark red"</key>
- </option>
- <option>
- <name>Dark Green</name>
- <key>"dark green"</key>
- </option>
- <option>
- <name>Dark Blue</name>
- <key>"Dark Blue"</key>
- </option>
- <option>
- <name>Blue</name>
- <key>"blue"</key>
- </option>
- <option>
- <name>Red</name>
- <key>"red"</key>
- </option>
- <option>
- <name>Green</name>
- <key>"green"</key>
- </option>
- <option>
- <name>Black</name>
- <key>"black"</key>
- </option>
- <option>
- <name>Cyan</name>
- <key>"cyan"</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>style1</base_key>
<name>Line 6 Style</name>
<key>style6</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 6 then 'part' else 'all'#</hide>
- <option>
- <name>None</name>
- <key>0</key>
- </option>
- <option>
- <name>Solid</name>
- <key>1</key>
- </option>
- <option>
- <name>Dash</name>
- <key>2</key>
- </option>
- <option>
- <name>Dots</name>
- <key>3</key>
- </option>
- <option>
- <name>Dash-Dot</name>
- <key>4</key>
- </option>
- <option>
- <name>Dash-Dot-Dot</name>
- <key>5</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>marker1</base_key>
<name>Line 6 Marker</name>
<key>marker6</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 6 then 'part' else 'all'#</hide>
- <option>
- <name>Circle</name>
- <key>0</key>
- </option>
- <option>
- <name>Rectangle</name>
- <key>1</key>
- </option>
- <option>
- <name>Diamond</name>
- <key>2</key>
- </option>
- <option>
- <name>Triangle</name>
- <key>3</key>
- </option>
- <option>
- <name>Down Triangle</name>
- <key>4</key>
- </option>
- <option>
- <name>Left Triangle</name>
- <key>6</key>
- </option>
- <option>
- <name>Right Triangle</name>
- <key>7</key>
- </option>
- <option>
- <name>Cross</name>
- <key>8</key>
- </option>
- <option>
- <name>X-Cross</name>
- <key>9</key>
- </option>
- <option>
- <name>None</name>
- <key>-1</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 6 Alpha</name>
<key>alpha6</key>
- <value>1.0</value>
- <type>float</type>
<hide>#if int($nconnections()) >= 6 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 7 Label</name>
<key>label7</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 7 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>width1</base_key>
<name>Line 7 Width</name>
<key>width7</key>
- <value>1</value>
- <type>int</type>
<hide>#if int($nconnections()) >= 7 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 7 Color</name>
<key>color7</key>
- <type>enum</type>
+ <value>"red"</value>
<hide>#if int($nconnections()) >= 7 then 'part' else 'all'#</hide>
- <option>
- <name>Yellow</name>
- <key>"yellow"</key>
- </option>
- <option>
- <name>Dark Red</name>
- <key>"dark red"</key>
- </option>
- <option>
- <name>Dark Green</name>
- <key>"dark green"</key>
- </option>
- <option>
- <name>Dark Blue</name>
- <key>"Dark Blue"</key>
- </option>
- <option>
- <name>Blue</name>
- <key>"blue"</key>
- </option>
- <option>
- <name>Red</name>
- <key>"red"</key>
- </option>
- <option>
- <name>Green</name>
- <key>"green"</key>
- </option>
- <option>
- <name>Black</name>
- <key>"black"</key>
- </option>
- <option>
- <name>Cyan</name>
- <key>"cyan"</key>
- </option>
- <option>
- <name>Magenta</name>
- <key>"magenta"</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>style1</base_key>
<name>Line 7 Style</name>
<key>style7</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 7 then 'part' else 'all'#</hide>
- <option>
- <name>None</name>
- <key>0</key>
- </option>
- <option>
- <name>Solid</name>
- <key>1</key>
- </option>
- <option>
- <name>Dash</name>
- <key>2</key>
- </option>
- <option>
- <name>Dots</name>
- <key>3</key>
- </option>
- <option>
- <name>Dash-Dot</name>
- <key>4</key>
- </option>
- <option>
- <name>Dash-Dot-Dot</name>
- <key>5</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>marker1</base_key>
<name>Line 7 Marker</name>
<key>marker7</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 7 then 'part' else 'all'#</hide>
- <option>
- <name>Circle</name>
- <key>0</key>
- </option>
- <option>
- <name>Rectangle</name>
- <key>1</key>
- </option>
- <option>
- <name>Diamond</name>
- <key>2</key>
- </option>
- <option>
- <name>Triangle</name>
- <key>3</key>
- </option>
- <option>
- <name>Down Triangle</name>
- <key>4</key>
- </option>
- <option>
- <name>Left Triangle</name>
- <key>6</key>
- </option>
- <option>
- <name>Right Triangle</name>
- <key>7</key>
- </option>
- <option>
- <name>Cross</name>
- <key>8</key>
- </option>
- <option>
- <name>X-Cross</name>
- <key>9</key>
- </option>
- <option>
- <name>None</name>
- <key>-1</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 7 Alpha</name>
<key>alpha7</key>
- <value>1.0</value>
- <type>float</type>
<hide>#if int($nconnections()) >= 7 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 8 Label</name>
<key>label8</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 8 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>width1</base_key>
<name>Line 8 Width</name>
<key>width8</key>
- <value>1</value>
- <type>int</type>
<hide>#if int($nconnections()) >= 8 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 8 Color</name>
<key>color8</key>
- <type>enum</type>
+ <value>"red"</value>
<hide>#if int($nconnections()) >= 8 then 'part' else 'all'#</hide>
- <option>
- <name>Dark Red</name>
- <key>"dark red"</key>
- </option>
- <option>
- <name>Dark Green</name>
- <key>"dark green"</key>
- </option>
- <option>
- <name>Dark Blue</name>
- <key>"Dark Blue"</key>
- </option>
- <option>
- <name>Blue</name>
- <key>"blue"</key>
- </option>
- <option>
- <name>Red</name>
- <key>"red"</key>
- </option>
- <option>
- <name>Green</name>
- <key>"green"</key>
- </option>
- <option>
- <name>Black</name>
- <key>"black"</key>
- </option>
- <option>
- <name>Cyan</name>
- <key>"cyan"</key>
- </option>
- <option>
- <name>Magenta</name>
- <key>"magenta"</key>
- </option>
- <option>
- <name>Yellow</name>
- <key>"yellow"</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>style1</base_key>
<name>Line 8 Style</name>
<key>style8</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 8 then 'part' else 'all'#</hide>
- <option>
- <name>None</name>
- <key>0</key>
- </option>
- <option>
- <name>Solid</name>
- <key>1</key>
- </option>
- <option>
- <name>Dash</name>
- <key>2</key>
- </option>
- <option>
- <name>Dots</name>
- <key>3</key>
- </option>
- <option>
- <name>Dash-Dot</name>
- <key>4</key>
- </option>
- <option>
- <name>Dash-Dot-Dot</name>
- <key>5</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>marker1</base_key>
<name>Line 8 Marker</name>
<key>marker8</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 8 then 'part' else 'all'#</hide>
- <option>
- <name>Circle</name>
- <key>0</key>
- </option>
- <option>
- <name>Rectangle</name>
- <key>1</key>
- </option>
- <option>
- <name>Diamond</name>
- <key>2</key>
- </option>
- <option>
- <name>Triangle</name>
- <key>3</key>
- </option>
- <option>
- <name>Down Triangle</name>
- <key>4</key>
- </option>
- <option>
- <name>Left Triangle</name>
- <key>6</key>
- </option>
- <option>
- <name>Right Triangle</name>
- <key>7</key>
- </option>
- <option>
- <name>Cross</name>
- <key>8</key>
- </option>
- <option>
- <name>X-Cross</name>
- <key>9</key>
- </option>
- <option>
- <name>None</name>
- <key>-1</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 8 Alpha</name>
<key>alpha8</key>
- <value>1.0</value>
- <type>float</type>
<hide>#if int($nconnections()) >= 8 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 9 Label</name>
<key>label9</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 9 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>width1</base_key>
<name>Line 9 Width</name>
<key>width9</key>
- <value>1</value>
- <type>int</type>
<hide>#if int($nconnections()) >= 9 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 9 Color</name>
<key>color9</key>
- <type>enum</type>
+ <value>"red"</value>
<hide>#if int($nconnections()) >= 9 then 'part' else 'all'#</hide>
- <option>
- <name>Dark Green</name>
- <key>"dark green"</key>
- </option>
- <option>
- <name>Dark Blue</name>
- <key>"Dark Blue"</key>
- </option>
- <option>
- <name>Blue</name>
- <key>"blue"</key>
- </option>
- <option>
- <name>Red</name>
- <key>"red"</key>
- </option>
- <option>
- <name>Green</name>
- <key>"green"</key>
- </option>
- <option>
- <name>Black</name>
- <key>"black"</key>
- </option>
- <option>
- <name>Cyan</name>
- <key>"cyan"</key>
- </option>
- <option>
- <name>Magenta</name>
- <key>"magenta"</key>
- </option>
- <option>
- <name>Yellow</name>
- <key>"yellow"</key>
- </option>
- <option>
- <name>Dark Red</name>
- <key>"dark red"</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>style1</base_key>
<name>Line 9 Style</name>
<key>style9</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 9 then 'part' else 'all'#</hide>
- <option>
- <name>None</name>
- <key>0</key>
- </option>
- <option>
- <name>Solid</name>
- <key>1</key>
- </option>
- <option>
- <name>Dash</name>
- <key>2</key>
- </option>
- <option>
- <name>Dots</name>
- <key>3</key>
- </option>
- <option>
- <name>Dash-Dot</name>
- <key>4</key>
- </option>
- <option>
- <name>Dash-Dot-Dot</name>
- <key>5</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>marker1</base_key>
<name>Line 9 Marker</name>
<key>marker9</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 9 then 'part' else 'all'#</hide>
- <option>
- <name>Circle</name>
- <key>0</key>
- </option>
- <option>
- <name>Rectangle</name>
- <key>1</key>
- </option>
- <option>
- <name>Diamond</name>
- <key>2</key>
- </option>
- <option>
- <name>Triangle</name>
- <key>3</key>
- </option>
- <option>
- <name>Down Triangle</name>
- <key>4</key>
- </option>
- <option>
- <name>Left Triangle</name>
- <key>6</key>
- </option>
- <option>
- <name>Right Triangle</name>
- <key>7</key>
- </option>
- <option>
- <name>Cross</name>
- <key>8</key>
- </option>
- <option>
- <name>X-Cross</name>
- <key>9</key>
- </option>
- <option>
- <name>None</name>
- <key>-1</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 9 Alpha</name>
<key>alpha9</key>
- <value>1.0</value>
- <type>float</type>
<hide>#if int($nconnections()) >= 9 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
+
+ <param>
+ <base_key>label1</base_key>
+ <name>Line 10 Label</name>
+ <key>label10</key>
+ <hide>#if int($nconnections()) >= 10 then 'part' else 'all'#</hide>
+ </param>
+
+ <param>
+ <base_key>width1</base_key>
+ <name>Line 10 Width</name>
+ <key>width10</key>
+ <hide>#if int($nconnections()) >= 10 then 'part' else 'all'#</hide>
+ </param>
+
+ <param>
+ <base_key>color1</base_key>
+ <name>Line 10 Color</name>
+ <key>color10</key>
+ <value>"red"</value>
+ <hide>#if int($nconnections()) >= 10 then 'part' else 'all'#</hide>
+ </param>
+
+ <param>
+ <base_key>style1</base_key>
+ <name>Line 10 Style</name>
+ <key>style10</key>
+ <hide>#if int($nconnections()) >= 10 then 'part' else 'all'#</hide>
+ </param>
+
+ <param>
+ <base_key>marker1</base_key>
+ <name>Line 10 Marker</name>
+ <key>marker10</key>
+ <hide>#if int($nconnections()) >= 10 then 'part' else 'all'#</hide>
+ </param>
+
+ <param>
+ <base_key>alpha1</base_key>
+ <name>Line 10 Alpha</name>
+ <key>alpha10</key>
+ <hide>#if int($nconnections()) >= 10 then 'part' else 'all'#</hide>
+ </param>
+
+
+
<sink>
<name>in</name>
<type>$type</type>
diff --git a/gr-qtgui/grc/qtgui_freq_sink_x.xml b/gr-qtgui/grc/qtgui_freq_sink_x.xml
index a9315c1128..761943eefc 100644
--- a/gr-qtgui/grc/qtgui_freq_sink_x.xml
+++ b/gr-qtgui/grc/qtgui_freq_sink_x.xml
@@ -23,15 +23,16 @@ qtgui.$(type.fcn)(
self.$(id).set_update_time($update_time)
self.$(id).set_y_axis($ymin, $ymax)
self.$(id).enable_autoscale($autoscale)
+self.$(id).set_fft_average($average)
labels = [$label1, $label2, $label3, $label4, $label5,
- $label6, $label7, $label8, $label9]
+ $label6, $label7, $label8, $label9, $label10]
widths = [$width1, $width2, $width3, $width4, $width5,
- $width6, $width7, $width8, $width9]
+ $width6, $width7, $width8, $width9, $width10]
colors = [$color1, $color2, $color3, $color4, $color5,
- $color6, $color7, $color8, $color9]
+ $color6, $color7, $color8, $color9, $color10]
alphas = [$alpha1, $alpha2, $alpha3, $alpha4, $alpha5,
- $alpha6, $alpha7, $alpha8, $alpha9]
+ $alpha6, $alpha7, $alpha8, $alpha9, $alpha10]
for i in xrange($nconnections):
if len(labels[i]) == 0:
self.$(id).set_line_label(i, "Data {0}".format(i))
@@ -127,6 +128,7 @@ $(gui_hint()($win))</make>
<key>autoscale</key>
<value>False</value>
<type>enum</type>
+ <hide>part</hide>
<option>
<name>Yes</name>
<key>True</key>
@@ -137,41 +139,65 @@ $(gui_hint()($win))</make>
</option>
</param>
- <param>
- <name>Y min</name>
- <key>ymin</key>
- <value>-140</value>
- <type>real</type>
- <hide>part</hide>
- </param>
- <param>
- <name>Y max</name>
- <key>ymax</key>
- <value>10</value>
- <type>real</type>
- <hide>part</hide>
- </param>
- <param>
- <name>Number of Inputs</name>
- <key>nconnections</key>
- <value>1</value>
- <type>int</type>
- <hide>part</hide>
- </param>
- <param>
- <name>Update Period</name>
- <key>update_time</key>
- <value>0.10</value>
- <type>real</type>
- <hide>part</hide>
- </param>
- <param>
- <name>GUI Hint</name>
- <key>gui_hint</key>
- <value></value>
- <type>gui_hint</type>
- <hide>part</hide>
- </param>
+ <param>
+ <name>Average</name>
+ <key>average</key>
+ <value>False</value>
+ <type>enum</type>
+ <hide>part</hide>
+ <option>
+ <name>None</name>
+ <key>1.0</key>
+ </option>
+ <option>
+ <name>Low</name>
+ <key>0.2</key>
+ </option>
+ <option>
+ <name>Medium</name>
+ <key>0.1</key>
+ </option>
+ <option>
+ <name>High</name>
+ <key>0.05</key>
+ </option>
+ </param>
+
+ <param>
+ <name>Y min</name>
+ <key>ymin</key>
+ <value>-140</value>
+ <type>real</type>
+ <hide>part</hide>
+ </param>
+ <param>
+ <name>Y max</name>
+ <key>ymax</key>
+ <value>10</value>
+ <type>real</type>
+ <hide>part</hide>
+ </param>
+ <param>
+ <name>Number of Inputs</name>
+ <key>nconnections</key>
+ <value>1</value>
+ <type>int</type>
+ <hide>part</hide>
+ </param>
+ <param>
+ <name>Update Period</name>
+ <key>update_time</key>
+ <value>0.10</value>
+ <type>real</type>
+ <hide>part</hide>
+ </param>
+ <param>
+ <name>GUI Hint</name>
+ <key>gui_hint</key>
+ <value></value>
+ <type>gui_hint</type>
+ <hide>part</hide>
+ </param>
<param>
@@ -234,7 +260,7 @@ $(gui_hint()($win))</make>
</option>
<option>
<name>Dark Blue</name>
- <key>"Dark Blue"</key>
+ <key>"dark blue"</key>
</option>
<tab>Config</tab>
</param>
@@ -250,605 +276,275 @@ $(gui_hint()($win))</make>
<param>
+ <base_key>label1</base_key>
<name>Line 2 Label</name>
<key>label2</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 2 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>width1</base_key>
<name>Line 2 Width</name>
<key>width2</key>
- <value>1</value>
- <type>int</type>
<hide>#if int($nconnections()) >= 2 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 2 Color</name>
<key>color2</key>
- <type>enum</type>
+ <value>"red"</value>
<hide>#if int($nconnections()) >= 2 then 'part' else 'all'#</hide>
- <option>
- <name>Red</name>
- <key>"red"</key>
- </option>
- <option>
- <name>Green</name>
- <key>"green"</key>
- </option>
- <option>
- <name>Black</name>
- <key>"black"</key>
- </option>
- <option>
- <name>Cyan</name>
- <key>"cyan"</key>
- </option>
- <option>
- <name>Magenta</name>
- <key>"magenta"</key>
- </option>
- <option>
- <name>Yellow</name>
- <key>"yellow"</key>
- </option>
- <option>
- <name>Dark Red</name>
- <key>"dark red"</key>
- </option>
- <option>
- <name>Dark Green</name>
- <key>"dark green"</key>
- </option>
- <option>
- <name>Dark Blue</name>
- <key>"Dark Blue"</key>
- </option>
- <option>
- <name>Blue</name>
- <key>"blue"</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 2 Alpha</name>
<key>alpha2</key>
- <value>1.0</value>
- <type>float</type>
<hide>#if int($nconnections()) >= 2 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
-
<param>
+ <base_key>label1</base_key>
<name>Line 3 Label</name>
<key>label3</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 3 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>width1</base_key>
<name>Line 3 Width</name>
<key>width3</key>
- <value>1</value>
- <type>int</type>
<hide>#if int($nconnections()) >= 3 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 3 Color</name>
<key>color3</key>
- <type>enum</type>
+ <value>"green"</value>
<hide>#if int($nconnections()) >= 3 then 'part' else 'all'#</hide>
- <option>
- <name>Green</name>
- <key>"green"</key>
- </option>
- <option>
- <name>Black</name>
- <key>"black"</key>
- </option>
- <option>
- <name>Cyan</name>
- <key>"cyan"</key>
- </option>
- <option>
- <name>Magenta</name>
- <key>"magenta"</key>
- </option>
- <option>
- <name>Yellow</name>
- <key>"yellow"</key>
- </option>
- <option>
- <name>Dark Red</name>
- <key>"dark red"</key>
- </option>
- <option>
- <name>Dark Green</name>
- <key>"dark green"</key>
- </option>
- <option>
- <name>Dark Blue</name>
- <key>"Dark Blue"</key>
- </option>
- <option>
- <name>Blue</name>
- <key>"blue"</key>
- </option>
- <option>
- <name>Red</name>
- <key>"red"</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 3 Alpha</name>
<key>alpha3</key>
- <value>1.0</value>
- <type>float</type>
<hide>#if int($nconnections()) >= 3 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 4 Label</name>
<key>label4</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 4 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>width1</base_key>
<name>Line 4 Width</name>
<key>width4</key>
- <value>1</value>
- <type>int</type>
<hide>#if int($nconnections()) >= 4 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 4 Color</name>
<key>color4</key>
- <type>enum</type>
+ <value>"black"</value>
<hide>#if int($nconnections()) >= 4 then 'part' else 'all'#</hide>
- <option>
- <name>Black</name>
- <key>"black"</key>
- </option>
- <option>
- <name>Cyan</name>
- <key>"cyan"</key>
- </option>
- <option>
- <name>Magenta</name>
- <key>"magenta"</key>
- </option>
- <option>
- <name>Yellow</name>
- <key>"yellow"</key>
- </option>
- <option>
- <name>Dark Red</name>
- <key>"dark red"</key>
- </option>
- <option>
- <name>Dark Green</name>
- <key>"dark green"</key>
- </option>
- <option>
- <name>Dark Blue</name>
- <key>"Dark Blue"</key>
- </option>
- <option>
- <name>Blue</name>
- <key>"blue"</key>
- </option>
- <option>
- <name>Red</name>
- <key>"red"</key>
- </option>
- <option>
- <name>Green</name>
- <key>"green"</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 4 Alpha</name>
<key>alpha4</key>
- <value>1.0</value>
- <type>float</type>
<hide>#if int($nconnections()) >= 4 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 5 Label</name>
<key>label5</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 5 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>width1</base_key>
<name>Line 5 Width</name>
<key>width5</key>
- <value>1</value>
- <type>int</type>
<hide>#if int($nconnections()) >= 5 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 5 Color</name>
<key>color5</key>
- <type>enum</type>
+ <value>"cyan"</value>
<hide>#if int($nconnections()) >= 5 then 'part' else 'all'#</hide>
- <option>
- <name>Cyan</name>
- <key>"cyan"</key>
- </option>
- <option>
- <name>Magenta</name>
- <key>"magenta"</key>
- </option>
- <option>
- <name>Yellow</name>
- <key>"yellow"</key>
- </option>
- <option>
- <name>Dark Red</name>
- <key>"dark red"</key>
- </option>
- <option>
- <name>Dark Green</name>
- <key>"dark green"</key>
- </option>
- <option>
- <name>Dark Blue</name>
- <key>"Dark Blue"</key>
- </option>
- <option>
- <name>Blue</name>
- <key>"blue"</key>
- </option>
- <option>
- <name>Red</name>
- <key>"red"</key>
- </option>
- <option>
- <name>Green</name>
- <key>"green"</key>
- </option>
- <option>
- <name>Black</name>
- <key>"black"</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 5 Alpha</name>
<key>alpha5</key>
- <value>1.0</value>
- <type>float</type>
<hide>#if int($nconnections()) >= 5 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 6 Label</name>
<key>label6</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 6 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>width1</base_key>
<name>Line 6 Width</name>
<key>width6</key>
- <value>1</value>
- <type>int</type>
<hide>#if int($nconnections()) >= 6 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 6 Color</name>
<key>color6</key>
- <type>enum</type>
+ <value>"magenta"</value>
<hide>#if int($nconnections()) >= 6 then 'part' else 'all'#</hide>
- <option>
- <name>Magenta</name>
- <key>"magenta"</key>
- </option>
- <option>
- <name>Yellow</name>
- <key>"yellow"</key>
- </option>
- <option>
- <name>Dark Red</name>
- <key>"dark red"</key>
- </option>
- <option>
- <name>Dark Green</name>
- <key>"dark green"</key>
- </option>
- <option>
- <name>Dark Blue</name>
- <key>"Dark Blue"</key>
- </option>
- <option>
- <name>Blue</name>
- <key>"blue"</key>
- </option>
- <option>
- <name>Red</name>
- <key>"red"</key>
- </option>
- <option>
- <name>Green</name>
- <key>"green"</key>
- </option>
- <option>
- <name>Black</name>
- <key>"black"</key>
- </option>
- <option>
- <name>Cyan</name>
- <key>"cyan"</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 6 Alpha</name>
<key>alpha6</key>
- <value>1.0</value>
- <type>float</type>
<hide>#if int($nconnections()) >= 6 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 7 Label</name>
<key>label7</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 7 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>width1</base_key>
<name>Line 7 Width</name>
<key>width7</key>
- <value>1</value>
- <type>int</type>
<hide>#if int($nconnections()) >= 7 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 7 Color</name>
<key>color7</key>
- <type>enum</type>
+ <value>"yellow"</value>
<hide>#if int($nconnections()) >= 7 then 'part' else 'all'#</hide>
- <option>
- <name>Yellow</name>
- <key>"yellow"</key>
- </option>
- <option>
- <name>Dark Red</name>
- <key>"dark red"</key>
- </option>
- <option>
- <name>Dark Green</name>
- <key>"dark green"</key>
- </option>
- <option>
- <name>Dark Blue</name>
- <key>"Dark Blue"</key>
- </option>
- <option>
- <name>Blue</name>
- <key>"blue"</key>
- </option>
- <option>
- <name>Red</name>
- <key>"red"</key>
- </option>
- <option>
- <name>Green</name>
- <key>"green"</key>
- </option>
- <option>
- <name>Black</name>
- <key>"black"</key>
- </option>
- <option>
- <name>Cyan</name>
- <key>"cyan"</key>
- </option>
- <option>
- <name>Magenta</name>
- <key>"magenta"</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 7 Alpha</name>
<key>alpha7</key>
- <value>1.0</value>
- <type>float</type>
<hide>#if int($nconnections()) >= 7 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 8 Label</name>
<key>label8</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 8 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>width1</base_key>
<name>Line 8 Width</name>
<key>width8</key>
- <value>1</value>
- <type>int</type>
<hide>#if int($nconnections()) >= 8 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 8 Color</name>
<key>color8</key>
- <type>enum</type>
+ <value>"dark red"</value>
<hide>#if int($nconnections()) >= 8 then 'part' else 'all'#</hide>
- <option>
- <name>Dark Red</name>
- <key>"dark red"</key>
- </option>
- <option>
- <name>Dark Green</name>
- <key>"dark green"</key>
- </option>
- <option>
- <name>Dark Blue</name>
- <key>"Dark Blue"</key>
- </option>
- <option>
- <name>Blue</name>
- <key>"blue"</key>
- </option>
- <option>
- <name>Red</name>
- <key>"red"</key>
- </option>
- <option>
- <name>Green</name>
- <key>"green"</key>
- </option>
- <option>
- <name>Black</name>
- <key>"black"</key>
- </option>
- <option>
- <name>Cyan</name>
- <key>"cyan"</key>
- </option>
- <option>
- <name>Magenta</name>
- <key>"magenta"</key>
- </option>
- <option>
- <name>Yellow</name>
- <key>"yellow"</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 8 Alpha</name>
<key>alpha8</key>
- <value>1.0</value>
- <type>float</type>
<hide>#if int($nconnections()) >= 8 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 9 Label</name>
<key>label9</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 9 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>width1</base_key>
<name>Line 9 Width</name>
<key>width9</key>
- <value>1</value>
- <type>int</type>
<hide>#if int($nconnections()) >= 9 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 9 Color</name>
<key>color9</key>
- <type>enum</type>
+ <value>"dark green"</value>
<hide>#if int($nconnections()) >= 9 then 'part' else 'all'#</hide>
- <option>
- <name>Dark Green</name>
- <key>"dark green"</key>
- </option>
- <option>
- <name>Dark Blue</name>
- <key>"Dark Blue"</key>
- </option>
- <option>
- <name>Blue</name>
- <key>"blue"</key>
- </option>
- <option>
- <name>Red</name>
- <key>"red"</key>
- </option>
- <option>
- <name>Green</name>
- <key>"green"</key>
- </option>
- <option>
- <name>Black</name>
- <key>"black"</key>
- </option>
- <option>
- <name>Cyan</name>
- <key>"cyan"</key>
- </option>
- <option>
- <name>Magenta</name>
- <key>"magenta"</key>
- </option>
- <option>
- <name>Yellow</name>
- <key>"yellow"</key>
- </option>
- <option>
- <name>Dark Red</name>
- <key>"dark red"</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 9 Alpha</name>
<key>alpha9</key>
- <value>1.0</value>
- <type>float</type>
<hide>#if int($nconnections()) >= 9 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
+
+ <param>
+ <base_key>label1</base_key>
+ <name>Line 10 Label</name>
+ <key>label10</key>
+ <hide>#if int($nconnections()) >= 10 then 'part' else 'all'#</hide>
+ </param>
+
+ <param>
+ <base_key>width1</base_key>
+ <name>Line 10 Width</name>
+ <key>width10</key>
+ <hide>#if int($nconnections()) >= 10 then 'part' else 'all'#</hide>
+ </param>
+
+ <param>
+ <base_key>color1</base_key>
+ <name>Line 10 Color</name>
+ <key>color10</key>
+ <value>"dark blue"</value>
+ <hide>#if int($nconnections()) >= 10 then 'part' else 'all'#</hide>
+ </param>
+
+ <param>
+ <base_key>alpha1</base_key>
+ <name>Line 10 Alpha</name>
+ <key>alpha10</key>
+ <hide>#if int($nconnections()) >= 10 then 'part' else 'all'#</hide>
+ </param>
+
+
<sink>
<name>in</name>
<type>$type</type>
diff --git a/gr-qtgui/grc/qtgui_histogram_sink_x.xml b/gr-qtgui/grc/qtgui_histogram_sink_x.xml
index 3f50d10256..254089181b 100644
--- a/gr-qtgui/grc/qtgui_histogram_sink_x.xml
+++ b/gr-qtgui/grc/qtgui_histogram_sink_x.xml
@@ -25,17 +25,17 @@ self.$(id).enable_autoscale($autoscale)
self.$(id).enable_accumulate($accum)
labels = [$label1, $label2, $label3, $label4, $label5,
- $label6, $label7, $label8, $label9]
+ $label6, $label7, $label8, $label9, $label10]
widths = [$width1, $width2, $width3, $width4, $width5,
- $width6, $width7, $width8, $width9]
+ $width6, $width7, $width8, $width9, $width10]
colors = [$color1, $color2, $color3, $color4, $color5,
- $color6, $color7, $color8, $color9]
+ $color6, $color7, $color8, $color9, $color10]
styles = [$style1, $style2, $style3, $style4, $style5,
- $style6, $style7, $style8, $style9]
+ $style6, $style7, $style8, $style9, $style10]
markers = [$marker1, $marker2, $marker3, $marker4, $marker5,
- $marker6, $marker7, $marker8, $marker9]
+ $marker6, $marker7, $marker8, $marker9, $marker10]
alphas = [$alpha1, $alpha2, $alpha3, $alpha4, $alpha5,
- $alpha6, $alpha7, $alpha8, $alpha9]
+ $alpha6, $alpha7, $alpha8, $alpha9, $alpha10]
for i in xrange($nconnections):
if len(labels[i]) == 0:
self.$(id).set_line_label(i, "Data {0}".format(i))
@@ -53,7 +53,8 @@ $(gui_hint()($win))</make>
<callback>set_title($which, $title)</callback>
<callback>set_color($which, $color)</callback>
<callback>set_bins($bins)</callback>
- <callback>set_x_axis($bins)</callback>
+ <callback>set_bins($bins)</callback>
+ <callback>set_x_axis($xmin, $xmax)</callback>
<param_tab_order>
<tab>General</tab>
@@ -204,7 +205,7 @@ $(gui_hint()($win))</make>
</option>
<option>
<name>Dark Blue</name>
- <key>"Dark Blue"</key>
+ <key>"dark blue"</key>
</option>
<tab>Config</tab>
</param>
@@ -300,1245 +301,403 @@ $(gui_hint()($win))</make>
<param>
+ <base_key>label1</base_key>
<name>Line 2 Label</name>
<key>label2</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 2 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>width1</base_key>
<name>Line 2 Width</name>
<key>width2</key>
- <value>1</value>
- <type>int</type>
<hide>#if int($nconnections()) >= 2 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 2 Color</name>
<key>color2</key>
- <type>enum</type>
+ <value>"red"</value>
<hide>#if int($nconnections()) >= 2 then 'part' else 'all'#</hide>
- <option>
- <name>Red</name>
- <key>"red"</key>
- </option>
- <option>
- <name>Green</name>
- <key>"green"</key>
- </option>
- <option>
- <name>Black</name>
- <key>"black"</key>
- </option>
- <option>
- <name>Cyan</name>
- <key>"cyan"</key>
- </option>
- <option>
- <name>Magenta</name>
- <key>"magenta"</key>
- </option>
- <option>
- <name>Yellow</name>
- <key>"yellow"</key>
- </option>
- <option>
- <name>Dark Red</name>
- <key>"dark red"</key>
- </option>
- <option>
- <name>Dark Green</name>
- <key>"dark green"</key>
- </option>
- <option>
- <name>Dark Blue</name>
- <key>"Dark Blue"</key>
- </option>
- <option>
- <name>Blue</name>
- <key>"blue"</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>style1</base_key>
<name>Line 2 Style</name>
<key>style2</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 2 then 'part' else 'all'#</hide>
- <option>
- <name>Solid</name>
- <key>1</key>
- </option>
- <option>
- <name>Dash</name>
- <key>2</key>
- </option>
- <option>
- <name>Dots</name>
- <key>3</key>
- </option>
- <option>
- <name>Dash-Dot</name>
- <key>4</key>
- </option>
- <option>
- <name>Dash-Dot-Dot</name>
- <key>5</key>
- </option>
- <option>
- <name>None</name>
- <key>0</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>marker1</base_key>
<name>Line 2 Marker</name>
<key>marker2</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 2 then 'part' else 'all'#</hide>
- <option>
- <name>None</name>
- <key>-1</key>
- </option>
- <option>
- <name>Circle</name>
- <key>0</key>
- </option>
- <option>
- <name>Rectangle</name>
- <key>1</key>
- </option>
- <option>
- <name>Diamond</name>
- <key>2</key>
- </option>
- <option>
- <name>Triangle</name>
- <key>3</key>
- </option>
- <option>
- <name>Down Triangle</name>
- <key>4</key>
- </option>
- <option>
- <name>Left Triangle</name>
- <key>6</key>
- </option>
- <option>
- <name>Right Triangle</name>
- <key>7</key>
- </option>
- <option>
- <name>Cross</name>
- <key>8</key>
- </option>
- <option>
- <name>X-Cross</name>
- <key>9</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 2 Alpha</name>
<key>alpha2</key>
- <value>1.0</value>
- <type>float</type>
<hide>#if int($nconnections()) >= 2 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 3 Label</name>
<key>label3</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 3 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>width1</base_key>
<name>Line 3 Width</name>
<key>width3</key>
- <value>1</value>
- <type>int</type>
<hide>#if int($nconnections()) >= 3 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 3 Color</name>
<key>color3</key>
- <type>enum</type>
+ <value>"green"</value>
<hide>#if int($nconnections()) >= 3 then 'part' else 'all'#</hide>
- <option>
- <name>Green</name>
- <key>"green"</key>
- </option>
- <option>
- <name>Black</name>
- <key>"black"</key>
- </option>
- <option>
- <name>Cyan</name>
- <key>"cyan"</key>
- </option>
- <option>
- <name>Magenta</name>
- <key>"magenta"</key>
- </option>
- <option>
- <name>Yellow</name>
- <key>"yellow"</key>
- </option>
- <option>
- <name>Dark Red</name>
- <key>"dark red"</key>
- </option>
- <option>
- <name>Dark Green</name>
- <key>"dark green"</key>
- </option>
- <option>
- <name>Dark Blue</name>
- <key>"Dark Blue"</key>
- </option>
- <option>
- <name>Blue</name>
- <key>"blue"</key>
- </option>
- <option>
- <name>Red</name>
- <key>"red"</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>style1</base_key>
<name>Line 3 Style</name>
<key>style3</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 3 then 'part' else 'all'#</hide>
- <option>
- <name>Solid</name>
- <key>1</key>
- </option>
- <option>
- <name>Dash</name>
- <key>2</key>
- </option>
- <option>
- <name>Dots</name>
- <key>3</key>
- </option>
- <option>
- <name>Dash-Dot</name>
- <key>4</key>
- </option>
- <option>
- <name>Dash-Dot-Dot</name>
- <key>5</key>
- </option>
- <option>
- <name>None</name>
- <key>0</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>marker1</base_key>
<name>Line 3 Marker</name>
<key>marker3</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 3 then 'part' else 'all'#</hide>
- <option>
- <name>None</name>
- <key>-1</key>
- </option>
- <option>
- <name>Circle</name>
- <key>0</key>
- </option>
- <option>
- <name>Rectangle</name>
- <key>1</key>
- </option>
- <option>
- <name>Diamond</name>
- <key>2</key>
- </option>
- <option>
- <name>Triangle</name>
- <key>3</key>
- </option>
- <option>
- <name>Down Triangle</name>
- <key>4</key>
- </option>
- <option>
- <name>Left Triangle</name>
- <key>6</key>
- </option>
- <option>
- <name>Right Triangle</name>
- <key>7</key>
- </option>
- <option>
- <name>Cross</name>
- <key>8</key>
- </option>
- <option>
- <name>X-Cross</name>
- <key>9</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 3 Alpha</name>
<key>alpha3</key>
- <value>1.0</value>
- <type>float</type>
<hide>#if int($nconnections()) >= 3 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 4 Label</name>
<key>label4</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 4 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>width1</base_key>
<name>Line 4 Width</name>
<key>width4</key>
- <value>1</value>
- <type>int</type>
<hide>#if int($nconnections()) >= 4 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 4 Color</name>
<key>color4</key>
- <type>enum</type>
+ <value>"black"</value>
<hide>#if int($nconnections()) >= 4 then 'part' else 'all'#</hide>
- <option>
- <name>Black</name>
- <key>"black"</key>
- </option>
- <option>
- <name>Cyan</name>
- <key>"cyan"</key>
- </option>
- <option>
- <name>Magenta</name>
- <key>"magenta"</key>
- </option>
- <option>
- <name>Yellow</name>
- <key>"yellow"</key>
- </option>
- <option>
- <name>Dark Red</name>
- <key>"dark red"</key>
- </option>
- <option>
- <name>Dark Green</name>
- <key>"dark green"</key>
- </option>
- <option>
- <name>Dark Blue</name>
- <key>"Dark Blue"</key>
- </option>
- <option>
- <name>Blue</name>
- <key>"blue"</key>
- </option>
- <option>
- <name>Red</name>
- <key>"red"</key>
- </option>
- <option>
- <name>Green</name>
- <key>"green"</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>style1</base_key>
<name>Line 4 Style</name>
<key>style4</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 4 then 'part' else 'all'#</hide>
- <option>
- <name>Solid</name>
- <key>1</key>
- </option>
- <option>
- <name>Dash</name>
- <key>2</key>
- </option>
- <option>
- <name>Dots</name>
- <key>3</key>
- </option>
- <option>
- <name>Dash-Dot</name>
- <key>4</key>
- </option>
- <option>
- <name>Dash-Dot-Dot</name>
- <key>5</key>
- </option>
- <option>
- <name>None</name>
- <key>0</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>marker1</base_key>
<name>Line 4 Marker</name>
<key>marker4</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 4 then 'part' else 'all'#</hide>
- <option>
- <name>None</name>
- <key>-1</key>
- </option>
- <option>
- <name>Circle</name>
- <key>0</key>
- </option>
- <option>
- <name>Rectangle</name>
- <key>1</key>
- </option>
- <option>
- <name>Diamond</name>
- <key>2</key>
- </option>
- <option>
- <name>Triangle</name>
- <key>3</key>
- </option>
- <option>
- <name>Down Triangle</name>
- <key>4</key>
- </option>
- <option>
- <name>Left Triangle</name>
- <key>6</key>
- </option>
- <option>
- <name>Right Triangle</name>
- <key>7</key>
- </option>
- <option>
- <name>Cross</name>
- <key>8</key>
- </option>
- <option>
- <name>X-Cross</name>
- <key>9</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 4 Alpha</name>
<key>alpha4</key>
- <value>1.0</value>
- <type>float</type>
<hide>#if int($nconnections()) >= 4 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 5 Label</name>
<key>label5</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 5 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>width1</base_key>
<name>Line 5 Width</name>
<key>width5</key>
- <value>1</value>
- <type>int</type>
<hide>#if int($nconnections()) >= 5 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 5 Color</name>
<key>color5</key>
- <type>enum</type>
+ <value>"cyan"</value>
<hide>#if int($nconnections()) >= 5 then 'part' else 'all'#</hide>
- <option>
- <name>Cyan</name>
- <key>"cyan"</key>
- </option>
- <option>
- <name>Magenta</name>
- <key>"magenta"</key>
- </option>
- <option>
- <name>Yellow</name>
- <key>"yellow"</key>
- </option>
- <option>
- <name>Dark Red</name>
- <key>"dark red"</key>
- </option>
- <option>
- <name>Dark Green</name>
- <key>"dark green"</key>
- </option>
- <option>
- <name>Dark Blue</name>
- <key>"Dark Blue"</key>
- </option>
- <option>
- <name>Blue</name>
- <key>"blue"</key>
- </option>
- <option>
- <name>Red</name>
- <key>"red"</key>
- </option>
- <option>
- <name>Green</name>
- <key>"green"</key>
- </option>
- <option>
- <name>Black</name>
- <key>"black"</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>style1</base_key>
<name>Line 5 Style</name>
<key>style5</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 5 then 'part' else 'all'#</hide>
- <option>
- <name>Solid</name>
- <key>1</key>
- </option>
- <option>
- <name>Dash</name>
- <key>2</key>
- </option>
- <option>
- <name>Dots</name>
- <key>3</key>
- </option>
- <option>
- <name>Dash-Dot</name>
- <key>4</key>
- </option>
- <option>
- <name>Dash-Dot-Dot</name>
- <key>5</key>
- </option>
- <option>
- <name>None</name>
- <key>0</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>marker1</base_key>
<name>Line 5 Marker</name>
<key>marker5</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 5 then 'part' else 'all'#</hide>
- <option>
- <name>None</name>
- <key>-1</key>
- </option>
- <option>
- <name>Circle</name>
- <key>0</key>
- </option>
- <option>
- <name>Rectangle</name>
- <key>1</key>
- </option>
- <option>
- <name>Diamond</name>
- <key>2</key>
- </option>
- <option>
- <name>Triangle</name>
- <key>3</key>
- </option>
- <option>
- <name>Down Triangle</name>
- <key>4</key>
- </option>
- <option>
- <name>Left Triangle</name>
- <key>6</key>
- </option>
- <option>
- <name>Right Triangle</name>
- <key>7</key>
- </option>
- <option>
- <name>Cross</name>
- <key>8</key>
- </option>
- <option>
- <name>X-Cross</name>
- <key>9</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 5 Alpha</name>
<key>alpha5</key>
- <value>1.0</value>
- <type>float</type>
<hide>#if int($nconnections()) >= 5 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 6 Label</name>
<key>label6</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 6 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>width1</base_key>
<name>Line 6 Width</name>
<key>width6</key>
- <value>1</value>
- <type>int</type>
<hide>#if int($nconnections()) >= 6 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 6 Color</name>
<key>color6</key>
- <type>enum</type>
+ <value>"magenta"</value>
<hide>#if int($nconnections()) >= 6 then 'part' else 'all'#</hide>
- <option>
- <name>Magenta</name>
- <key>"magenta"</key>
- </option>
- <option>
- <name>Yellow</name>
- <key>"yellow"</key>
- </option>
- <option>
- <name>Dark Red</name>
- <key>"dark red"</key>
- </option>
- <option>
- <name>Dark Green</name>
- <key>"dark green"</key>
- </option>
- <option>
- <name>Dark Blue</name>
- <key>"Dark Blue"</key>
- </option>
- <option>
- <name>Blue</name>
- <key>"blue"</key>
- </option>
- <option>
- <name>Red</name>
- <key>"red"</key>
- </option>
- <option>
- <name>Green</name>
- <key>"green"</key>
- </option>
- <option>
- <name>Black</name>
- <key>"black"</key>
- </option>
- <option>
- <name>Cyan</name>
- <key>"cyan"</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>style1</base_key>
<name>Line 6 Style</name>
<key>style6</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 6 then 'part' else 'all'#</hide>
- <option>
- <name>Solid</name>
- <key>1</key>
- </option>
- <option>
- <name>Dash</name>
- <key>2</key>
- </option>
- <option>
- <name>Dots</name>
- <key>3</key>
- </option>
- <option>
- <name>Dash-Dot</name>
- <key>4</key>
- </option>
- <option>
- <name>Dash-Dot-Dot</name>
- <key>5</key>
- </option>
- <option>
- <name>None</name>
- <key>0</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>marker1</base_key>
<name>Line 6 Marker</name>
<key>marker6</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 6 then 'part' else 'all'#</hide>
- <option>
- <name>None</name>
- <key>-1</key>
- </option>
- <option>
- <name>Circle</name>
- <key>0</key>
- </option>
- <option>
- <name>Rectangle</name>
- <key>1</key>
- </option>
- <option>
- <name>Diamond</name>
- <key>2</key>
- </option>
- <option>
- <name>Triangle</name>
- <key>3</key>
- </option>
- <option>
- <name>Down Triangle</name>
- <key>4</key>
- </option>
- <option>
- <name>Left Triangle</name>
- <key>6</key>
- </option>
- <option>
- <name>Right Triangle</name>
- <key>7</key>
- </option>
- <option>
- <name>Cross</name>
- <key>8</key>
- </option>
- <option>
- <name>X-Cross</name>
- <key>9</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 6 Alpha</name>
<key>alpha6</key>
- <value>1.0</value>
- <type>float</type>
<hide>#if int($nconnections()) >= 6 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 7 Label</name>
<key>label7</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 7 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>width1</base_key>
<name>Line 7 Width</name>
<key>width7</key>
- <value>1</value>
- <type>int</type>
<hide>#if int($nconnections()) >= 7 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 7 Color</name>
<key>color7</key>
- <type>enum</type>
+ <value>"yellow"</value>
<hide>#if int($nconnections()) >= 7 then 'part' else 'all'#</hide>
- <option>
- <name>Yellow</name>
- <key>"yellow"</key>
- </option>
- <option>
- <name>Dark Red</name>
- <key>"dark red"</key>
- </option>
- <option>
- <name>Dark Green</name>
- <key>"dark green"</key>
- </option>
- <option>
- <name>Dark Blue</name>
- <key>"Dark Blue"</key>
- </option>
- <option>
- <name>Blue</name>
- <key>"blue"</key>
- </option>
- <option>
- <name>Red</name>
- <key>"red"</key>
- </option>
- <option>
- <name>Green</name>
- <key>"green"</key>
- </option>
- <option>
- <name>Black</name>
- <key>"black"</key>
- </option>
- <option>
- <name>Cyan</name>
- <key>"cyan"</key>
- </option>
- <option>
- <name>Magenta</name>
- <key>"magenta"</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>style1</base_key>
<name>Line 7 Style</name>
<key>style7</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 7 then 'part' else 'all'#</hide>
- <option>
- <name>Solid</name>
- <key>1</key>
- </option>
- <option>
- <name>Dash</name>
- <key>2</key>
- </option>
- <option>
- <name>Dots</name>
- <key>3</key>
- </option>
- <option>
- <name>Dash-Dot</name>
- <key>4</key>
- </option>
- <option>
- <name>Dash-Dot-Dot</name>
- <key>5</key>
- </option>
- <option>
- <name>None</name>
- <key>0</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>marker1</base_key>
<name>Line 7 Marker</name>
<key>marker7</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 7 then 'part' else 'all'#</hide>
- <option>
- <name>None</name>
- <key>-1</key>
- </option>
- <option>
- <name>Circle</name>
- <key>0</key>
- </option>
- <option>
- <name>Rectangle</name>
- <key>1</key>
- </option>
- <option>
- <name>Diamond</name>
- <key>2</key>
- </option>
- <option>
- <name>Triangle</name>
- <key>3</key>
- </option>
- <option>
- <name>Down Triangle</name>
- <key>4</key>
- </option>
- <option>
- <name>Left Triangle</name>
- <key>6</key>
- </option>
- <option>
- <name>Right Triangle</name>
- <key>7</key>
- </option>
- <option>
- <name>Cross</name>
- <key>8</key>
- </option>
- <option>
- <name>X-Cross</name>
- <key>9</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 7 Alpha</name>
<key>alpha7</key>
- <value>1.0</value>
- <type>float</type>
<hide>#if int($nconnections()) >= 7 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 8 Label</name>
<key>label8</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 8 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>width1</base_key>
<name>Line 8 Width</name>
<key>width8</key>
- <value>1</value>
- <type>int</type>
<hide>#if int($nconnections()) >= 8 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 8 Color</name>
<key>color8</key>
- <type>enum</type>
+ <value>"dark red"</value>
<hide>#if int($nconnections()) >= 8 then 'part' else 'all'#</hide>
- <option>
- <name>Dark Red</name>
- <key>"dark red"</key>
- </option>
- <option>
- <name>Dark Green</name>
- <key>"dark green"</key>
- </option>
- <option>
- <name>Dark Blue</name>
- <key>"Dark Blue"</key>
- </option>
- <option>
- <name>Blue</name>
- <key>"blue"</key>
- </option>
- <option>
- <name>Red</name>
- <key>"red"</key>
- </option>
- <option>
- <name>Green</name>
- <key>"green"</key>
- </option>
- <option>
- <name>Black</name>
- <key>"black"</key>
- </option>
- <option>
- <name>Cyan</name>
- <key>"cyan"</key>
- </option>
- <option>
- <name>Magenta</name>
- <key>"magenta"</key>
- </option>
- <option>
- <name>Yellow</name>
- <key>"yellow"</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>style1</base_key>
<name>Line 8 Style</name>
<key>style8</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 8 then 'part' else 'all'#</hide>
- <option>
- <name>Solid</name>
- <key>1</key>
- </option>
- <option>
- <name>Dash</name>
- <key>2</key>
- </option>
- <option>
- <name>Dots</name>
- <key>3</key>
- </option>
- <option>
- <name>Dash-Dot</name>
- <key>4</key>
- </option>
- <option>
- <name>Dash-Dot-Dot</name>
- <key>5</key>
- </option>
- <option>
- <name>None</name>
- <key>0</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>marker1</base_key>
<name>Line 8 Marker</name>
<key>marker8</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 8 then 'part' else 'all'#</hide>
- <option>
- <name>None</name>
- <key>-1</key>
- </option>
- <option>
- <name>Circle</name>
- <key>0</key>
- </option>
- <option>
- <name>Rectangle</name>
- <key>1</key>
- </option>
- <option>
- <name>Diamond</name>
- <key>2</key>
- </option>
- <option>
- <name>Triangle</name>
- <key>3</key>
- </option>
- <option>
- <name>Down Triangle</name>
- <key>4</key>
- </option>
- <option>
- <name>Left Triangle</name>
- <key>6</key>
- </option>
- <option>
- <name>Right Triangle</name>
- <key>7</key>
- </option>
- <option>
- <name>Cross</name>
- <key>8</key>
- </option>
- <option>
- <name>X-Cross</name>
- <key>9</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 8 Alpha</name>
<key>alpha8</key>
- <value>1.0</value>
- <type>float</type>
<hide>#if int($nconnections()) >= 8 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 9 Label</name>
<key>label9</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 9 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>width1</base_key>
<name>Line 9 Width</name>
<key>width9</key>
- <value>1</value>
- <type>int</type>
<hide>#if int($nconnections()) >= 9 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 9 Color</name>
<key>color9</key>
- <type>enum</type>
+ <value>"dark green"</value>
<hide>#if int($nconnections()) >= 9 then 'part' else 'all'#</hide>
- <option>
- <name>Dark Green</name>
- <key>"dark green"</key>
- </option>
- <option>
- <name>Dark Blue</name>
- <key>"Dark Blue"</key>
- </option>
- <option>
- <name>Blue</name>
- <key>"blue"</key>
- </option>
- <option>
- <name>Red</name>
- <key>"red"</key>
- </option>
- <option>
- <name>Green</name>
- <key>"green"</key>
- </option>
- <option>
- <name>Black</name>
- <key>"black"</key>
- </option>
- <option>
- <name>Cyan</name>
- <key>"cyan"</key>
- </option>
- <option>
- <name>Magenta</name>
- <key>"magenta"</key>
- </option>
- <option>
- <name>Yellow</name>
- <key>"yellow"</key>
- </option>
- <option>
- <name>Dark Red</name>
- <key>"dark red"</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>style1</base_key>
<name>Line 9 Style</name>
<key>style9</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 9 then 'part' else 'all'#</hide>
- <option>
- <name>Solid</name>
- <key>1</key>
- </option>
- <option>
- <name>Dash</name>
- <key>2</key>
- </option>
- <option>
- <name>Dots</name>
- <key>3</key>
- </option>
- <option>
- <name>Dash-Dot</name>
- <key>4</key>
- </option>
- <option>
- <name>Dash-Dot-Dot</name>
- <key>5</key>
- </option>
- <option>
- <name>None</name>
- <key>0</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>marker1</base_key>
<name>Line 9 Marker</name>
<key>marker9</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 9 then 'part' else 'all'#</hide>
- <option>
- <name>None</name>
- <key>-1</key>
- </option>
- <option>
- <name>Circle</name>
- <key>0</key>
- </option>
- <option>
- <name>Rectangle</name>
- <key>1</key>
- </option>
- <option>
- <name>Diamond</name>
- <key>2</key>
- </option>
- <option>
- <name>Triangle</name>
- <key>3</key>
- </option>
- <option>
- <name>Down Triangle</name>
- <key>4</key>
- </option>
- <option>
- <name>Left Triangle</name>
- <key>6</key>
- </option>
- <option>
- <name>Right Triangle</name>
- <key>7</key>
- </option>
- <option>
- <name>Cross</name>
- <key>8</key>
- </option>
- <option>
- <name>X-Cross</name>
- <key>9</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 9 Alpha</name>
<key>alpha9</key>
- <value>1.0</value>
- <type>float</type>
<hide>#if int($nconnections()) >= 9 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
+ <param>
+ <base_key>label1</base_key>
+ <name>Line 10 Label</name>
+ <key>label10</key>
+ <hide>#if int($nconnections()) >= 10 then 'part' else 'all'#</hide>
+ </param>
+
+ <param>
+ <base_key>width1</base_key>
+ <name>Line 10 Width</name>
+ <key>width10</key>
+ <hide>#if int($nconnections()) >= 10 then 'part' else 'all'#</hide>
+ </param>
+
+ <param>
+ <base_key>color1</base_key>
+ <name>Line 10 Color</name>
+ <key>color10</key>
+ <value>"dark blue"</value>
+ <hide>#if int($nconnections()) >= 10 then 'part' else 'all'#</hide>
+ </param>
+
+ <param>
+ <base_key>style1</base_key>
+ <name>Line 10 Style</name>
+ <key>style10</key>
+ <hide>#if int($nconnections()) >= 10 then 'part' else 'all'#</hide>
+ </param>
+
+ <param>
+ <base_key>marker1</base_key>
+ <name>Line 10 Marker</name>
+ <key>marker10</key>
+ <hide>#if int($nconnections()) >= 10 then 'part' else 'all'#</hide>
+ </param>
+
+ <param>
+ <base_key>alpha1</base_key>
+ <name>Line 10 Alpha</name>
+ <key>alpha10</key>
+ <hide>#if int($nconnections()) >= 10 then 'part' else 'all'#</hide>
+ </param>
+
+
+
+
<sink>
<name>in</name>
<type>float</type>
diff --git a/gr-qtgui/grc/qtgui_number_sink.xml b/gr-qtgui/grc/qtgui_number_sink.xml
index e277e7fbdf..af74bca0bf 100644
--- a/gr-qtgui/grc/qtgui_number_sink.xml
+++ b/gr-qtgui/grc/qtgui_number_sink.xml
@@ -20,14 +20,17 @@ qtgui.number_sink(
self.$(id).set_update_time($update_time)
labels = [$label1, $label2, $label3, $label4, $label5,
- $label6, $label7, $label8, $label9]
+ $label6, $label7, $label8, $label9, $label10]
colors = [$color1, $color2, $color3, $color4, $color5,
- $color6, $color7, $color8, $color9]
+ $color6, $color7, $color8, $color9, $color10]
for i in xrange($nconnections):
self.$(id).set_min(i, $min)
self.$(id).set_max(i, $max)
- self.$(id).set_label(i, labels[i])
self.$(id).set_color(i, colors[i][0], colors[i][1])
+ if len(labels[i]) == 0:
+ self.$(id).set_label(i, "Data {0}".format(i))
+ else:
+ self.$(id).set_label(i, labels[i])
self.$(id).enable_autoscale($autoscale)
self._$(id)_win = sip.wrapinstance(self.$(id).pyqwidget(), Qt.QWidget)
@@ -188,300 +191,140 @@ $(gui_hint()($win))</make>
<param>
+ <base_key>label1</base_key>
<name>Line 2 Label</name>
<key>label2</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 2 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 2 Color</name>
<key>color2</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 2 then 'part' else 'all'#</hide>
- <option>
- <name>Black</name>
- <key>("black", "black")</key>
- </option>
- <option>
- <name>Blue-Red</name>
- <key>("blue", "red")</key>
- </option>
- <option>
- <name>White Hot</name>
- <key>("black", "white")</key>
- </option>
- <option>
- <name>Black Hot</name>
- <key>("white", "black")</key>
- </option>
- <option>
- <name>Black-Red</name>
- <key>("black", "red")</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 3 Label</name>
<key>label3</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 3 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 3 Color</name>
<key>color3</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 3 then 'part' else 'all'#</hide>
- <option>
- <name>Black</name>
- <key>("black", "black")</key>
- </option>
- <option>
- <name>Blue-Red</name>
- <key>("blue", "red")</key>
- </option>
- <option>
- <name>White Hot</name>
- <key>("black", "white")</key>
- </option>
- <option>
- <name>Black Hot</name>
- <key>("white", "black")</key>
- </option>
- <option>
- <name>Black-Red</name>
- <key>("black", "red")</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 4 Label</name>
<key>label4</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 4 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 4 Color</name>
<key>color4</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 4 then 'part' else 'all'#</hide>
- <option>
- <name>Black</name>
- <key>("black", "black")</key>
- </option>
- <option>
- <name>Blue-Red</name>
- <key>("blue", "red")</key>
- </option>
- <option>
- <name>White Hot</name>
- <key>("black", "white")</key>
- </option>
- <option>
- <name>Black Hot</name>
- <key>("white", "black")</key>
- </option>
- <option>
- <name>Black-Red</name>
- <key>("black", "red")</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 5 Label</name>
<key>label5</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 5 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 5 Color</name>
<key>color5</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 5 then 'part' else 'all'#</hide>
- <option>
- <name>Black</name>
- <key>("black", "black")</key>
- </option>
- <option>
- <name>Blue-Red</name>
- <key>("blue", "red")</key>
- </option>
- <option>
- <name>White Hot</name>
- <key>("black", "white")</key>
- </option>
- <option>
- <name>Black Hot</name>
- <key>("white", "black")</key>
- </option>
- <option>
- <name>Black-Red</name>
- <key>("black", "red")</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 6 Label</name>
<key>label6</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 6 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 6 Color</name>
<key>color6</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 6 then 'part' else 'all'#</hide>
- <option>
- <name>Black</name>
- <key>("black", "black")</key>
- </option>
- <option>
- <name>Blue-Red</name>
- <key>("blue", "red")</key>
- </option>
- <option>
- <name>White Hot</name>
- <key>("black", "white")</key>
- </option>
- <option>
- <name>Black Hot</name>
- <key>("white", "black")</key>
- </option>
- <option>
- <name>Black-Red</name>
- <key>("black", "red")</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 7 Label</name>
<key>label7</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 7 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 7 Color</name>
<key>color7</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 7 then 'part' else 'all'#</hide>
- <option>
- <name>Black</name>
- <key>("black", "black")</key>
- </option>
- <option>
- <name>Blue-Red</name>
- <key>("blue", "red")</key>
- </option>
- <option>
- <name>White Hot</name>
- <key>("black", "white")</key>
- </option>
- <option>
- <name>Black Hot</name>
- <key>("white", "black")</key>
- </option>
- <option>
- <name>Black-Red</name>
- <key>("black", "red")</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 8 Label</name>
<key>label8</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 8 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 8 Color</name>
<key>color8</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 8 then 'part' else 'all'#</hide>
- <option>
- <name>Black</name>
- <key>("black", "black")</key>
- </option>
- <option>
- <name>Blue-Red</name>
- <key>("blue", "red")</key>
- </option>
- <option>
- <name>White Hot</name>
- <key>("black", "white")</key>
- </option>
- <option>
- <name>Black Hot</name>
- <key>("white", "black")</key>
- </option>
- <option>
- <name>Black-Red</name>
- <key>("black", "red")</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 9 Label</name>
<key>label9</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 9 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 9 Color</name>
<key>color9</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 9 then 'part' else 'all'#</hide>
- <option>
- <name>Black</name>
- <key>("black", "black")</key>
- </option>
- <option>
- <name>Blue-Red</name>
- <key>("blue", "red")</key>
- </option>
- <option>
- <name>White Hot</name>
- <key>("black", "white")</key>
- </option>
- <option>
- <name>Black Hot</name>
- <key>("white", "black")</key>
- </option>
- <option>
- <name>Black-Red</name>
- <key>("black", "red")</key>
- </option>
- <tab>Config</tab>
</param>
+
+ <param>
+ <base_key>label1</base_key>
+ <name>Line 10 Label</name>
+ <key>label10</key>
+ <hide>#if int($nconnections()) >= 10 then 'part' else 'all'#</hide>
+ </param>
+
+ <param>
+ <base_key>color1</base_key>
+ <name>Line 10 Color</name>
+ <key>color10</key>
+ <hide>#if int($nconnections()) >= 10 then 'part' else 'all'#</hide>
+ </param>
+
+
<sink>
<name>in</name>
<type>$type</type>
diff --git a/gr-qtgui/grc/qtgui_time_raster_x.xml b/gr-qtgui/grc/qtgui_time_raster_x.xml
index 201ab90603..db13ce5f6a 100644
--- a/gr-qtgui/grc/qtgui_time_raster_x.xml
+++ b/gr-qtgui/grc/qtgui_time_raster_x.xml
@@ -24,11 +24,11 @@ qtgui.$(type.fcn)(
self.$(id).set_update_time($update_time)
labels = [$label1, $label2, $label3, $label4, $label5,
- $label6, $label7, $label8, $label9]
+ $label6, $label7, $label8, $label9, $label10]
colors = [$color1, $color2, $color3, $color4, $color5,
- $color6, $color7, $color8, $color9]
+ $color6, $color7, $color8, $color9, $color10]
alphas = [$alpha1, $alpha2, $alpha3, $alpha4, $alpha5,
- $alpha6, $alpha7, $alpha8, $alpha9]
+ $alpha6, $alpha7, $alpha8, $alpha9, $alpha10]
for i in xrange($nconnections):
if len(labels[i]) == 0:
self.$(id).set_line_label(i, "Data {0}".format(i))
@@ -162,340 +162,203 @@ $(gui_hint()($win))</make>
<param>
+ <base_key>label1</base_key>
<name>Line 2 Label</name>
<key>label2</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 2 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 2 Color</name>
<key>color2</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 2 then 'part' else 'all'#</hide>
- <option>
- <name>Multi Color</name>
- <key>0</key>
- </option>
- <option>
- <name>White Hot</name>
- <key>1</key>
- </option>
- <option>
- <name>Black Hot</name>
- <key>2</key>
- </option>
- <option>
- <name>Incandescent</name>
- <key>3</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 2 Alpha</name>
<key>alpha2</key>
- <value>1.0</value>
- <type>float</type>
<hide>#if int($nconnections()) >= 2 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 3 Label</name>
<key>label3</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 3 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 3 Color</name>
<key>color3</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 3 then 'part' else 'all'#</hide>
- <option>
- <name>Multi Color</name>
- <key>0</key>
- </option>
- <option>
- <name>White Hot</name>
- <key>1</key>
- </option>
- <option>
- <name>Black Hot</name>
- <key>2</key>
- </option>
- <option>
- <name>Incandescent</name>
- <key>3</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 3 Alpha</name>
<key>alpha3</key>
- <value>1.0</value>
- <type>float</type>
<hide>#if int($nconnections()) >= 3 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 4 Label</name>
<key>label4</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 4 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 4 Color</name>
<key>color4</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 4 then 'part' else 'all'#</hide>
- <option>
- <name>Multi Color</name>
- <key>0</key>
- </option>
- <option>
- <name>White Hot</name>
- <key>1</key>
- </option>
- <option>
- <name>Black Hot</name>
- <key>2</key>
- </option>
- <option>
- <name>Incandescent</name>
- <key>3</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 4 Alpha</name>
<key>alpha4</key>
- <value>1.0</value>
- <type>float</type>
<hide>#if int($nconnections()) >= 4 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 5 Label</name>
<key>label5</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 5 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 5 Color</name>
<key>color5</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 5 then 'part' else 'all'#</hide>
- <option>
- <name>Multi Color</name>
- <key>0</key>
- </option>
- <option>
- <name>White Hot</name>
- <key>1</key>
- </option>
- <option>
- <name>Black Hot</name>
- <key>2</key>
- </option>
- <option>
- <name>Incandescent</name>
- <key>3</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 5 Alpha</name>
<key>alpha5</key>
- <value>1.0</value>
- <type>float</type>
<hide>#if int($nconnections()) >= 5 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 6 Label</name>
<key>label6</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 6 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 6 Color</name>
<key>color6</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 6 then 'part' else 'all'#</hide>
- <option>
- <name>Multi Color</name>
- <key>0</key>
- </option>
- <option>
- <name>White Hot</name>
- <key>1</key>
- </option>
- <option>
- <name>Black Hot</name>
- <key>2</key>
- </option>
- <option>
- <name>Incandescent</name>
- <key>3</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 6 Alpha</name>
<key>alpha6</key>
- <value>1.0</value>
- <type>float</type>
<hide>#if int($nconnections()) >= 6 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 7 Label</name>
<key>label7</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 7 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 7 Color</name>
<key>color7</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 7 then 'part' else 'all'#</hide>
- <option>
- <name>Multi Color</name>
- <key>0</key>
- </option>
- <option>
- <name>White Hot</name>
- <key>1</key>
- </option>
- <option>
- <name>Black Hot</name>
- <key>2</key>
- </option>
- <option>
- <name>Incandescent</name>
- <key>3</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 7 Alpha</name>
<key>alpha7</key>
- <value>1.0</value>
- <type>float</type>
<hide>#if int($nconnections()) >= 7 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 8 Label</name>
<key>label8</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 8 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 8 Color</name>
<key>color8</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 8 then 'part' else 'all'#</hide>
- <option>
- <name>Multi Color</name>
- <key>0</key>
- </option>
- <option>
- <name>White Hot</name>
- <key>1</key>
- </option>
- <option>
- <name>Black Hot</name>
- <key>2</key>
- </option>
- <option>
- <name>Incandescent</name>
- <key>3</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 8 Alpha</name>
<key>alpha8</key>
- <value>1.0</value>
- <type>float</type>
<hide>#if int($nconnections()) >= 8 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 9 Label</name>
<key>label9</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 9 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 9 Color</name>
<key>color9</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 9 then 'part' else 'all'#</hide>
- <option>
- <name>Multi Color</name>
- <key>0</key>
- </option>
- <option>
- <name>White Hot</name>
- <key>1</key>
- </option>
- <option>
- <name>Black Hot</name>
- <key>2</key>
- </option>
- <option>
- <name>Incandescent</name>
- <key>3</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 9 Alpha</name>
<key>alpha9</key>
- <value>1.0</value>
- <type>float</type>
<hide>#if int($nconnections()) >= 9 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
+
+ <param>
+ <base_key>label1</base_key>
+ <name>Line 10 Label</name>
+ <key>label10</key>
+ <hide>#if int($nconnections()) >= 10 then 'part' else 'all'#</hide>
+ </param>
+
+ <param>
+ <base_key>color1</base_key>
+ <name>Line 10 Color</name>
+ <key>color10</key>
+ <hide>#if int($nconnections()) >= 10 then 'part' else 'all'#</hide>
+ </param>
+
+ <param>
+ <base_key>alpha1</base_key>
+ <name>Line 10 Alpha</name>
+ <key>alpha10</key>
+ <hide>#if int($nconnections()) >= 10 then 'part' else 'all'#</hide>
+ </param>
+
+
<sink>
<name>in</name>
<type>$type</type>
diff --git a/gr-qtgui/grc/qtgui_time_sink_x.xml b/gr-qtgui/grc/qtgui_time_sink_x.xml
index 57e1cc9367..172da7a02d 100644
--- a/gr-qtgui/grc/qtgui_time_sink_x.xml
+++ b/gr-qtgui/grc/qtgui_time_sink_x.xml
@@ -25,17 +25,33 @@ self.$(id).set_trigger_mode($tr_mode, $tr_slope, $tr_level, $tr_delay, $tr_chan,
self.$(id).enable_autoscale($autoscale)
labels = [$label1, $label2, $label3, $label4, $label5,
- $label6, $label7, $label8, $label9]
+ $label6, $label7, $label8, $label9, $label10]
widths = [$width1, $width2, $width3, $width4, $width5,
- $width6, $width7, $width8, $width9]
+ $width6, $width7, $width8, $width9, $width10]
colors = [$color1, $color2, $color3, $color4, $color5,
- $color6, $color7, $color8, $color9]
+ $color6, $color7, $color8, $color9, $color10]
styles = [$style1, $style2, $style3, $style4, $style5,
- $style6, $style7, $style8, $style9]
+ $style6, $style7, $style8, $style9, $style10]
markers = [$marker1, $marker2, $marker3, $marker4, $marker5,
- $marker6, $marker7, $marker8, $marker9]
+ $marker6, $marker7, $marker8, $marker9, $marker10]
alphas = [$alpha1, $alpha2, $alpha3, $alpha4, $alpha5,
- $alpha6, $alpha7, $alpha8, $alpha9]
+ $alpha6, $alpha7, $alpha8, $alpha9, $alpha10]
+
+#if($type() == "complex")
+for i in xrange(2*$nconnections):
+ if len(labels[i]) == 0:
+ if(i % 2 == 0):
+ self.$(id).set_line_label(i, "Re{{Data {0}}}".format(i/2))
+ else:
+ self.$(id).set_line_label(i, "Im{{Data {0}}}".format(i/2))
+ else:
+ self.$(id).set_line_label(i, labels[i])
+ self.$(id).set_line_width(i, widths[i])
+ self.$(id).set_line_color(i, colors[i])
+ self.$(id).set_line_style(i, styles[i])
+ self.$(id).set_line_marker(i, markers[i])
+ self.$(id).set_line_alpha(i, alphas[i])
+#else
for i in xrange($nconnections):
if len(labels[i]) == 0:
self.$(id).set_line_label(i, "Data {0}".format(i))
@@ -46,6 +62,7 @@ for i in xrange($nconnections):
self.$(id).set_line_style(i, styles[i])
self.$(id).set_line_marker(i, markers[i])
self.$(id).set_line_alpha(i, alphas[i])
+#end if
self._$(id)_win = sip.wrapinstance(self.$(id).pyqwidget(), Qt.QWidget)
$(gui_hint()($win))</make>
@@ -391,1245 +408,403 @@ $(gui_hint()($win))</make>
</param>
+
<param>
+ <base_key>label1</base_key>
<name>Line 2 Label</name>
<key>label2</key>
- <type>string</type>
- <hide>#if int($nconnections()) >= 2 then 'part' else 'all'#</hide>
- <tab>Config</tab>
+ <hide>#if (int($nconnections()) >= 2 or ($type() == "complex" and int($nconnections()) >= 1)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>width1</base_key>
<name>Line 2 Width</name>
<key>width2</key>
- <value>1</value>
- <type>int</type>
- <hide>#if int($nconnections()) >= 2 then 'part' else 'all'#</hide>
- <tab>Config</tab>
+ <hide>#if (int($nconnections()) >= 2 or ($type() == "complex" and int($nconnections()) >= 1)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 2 Color</name>
<key>color2</key>
- <type>enum</type>
- <hide>#if int($nconnections()) >= 2 then 'part' else 'all'#</hide>
- <option>
- <name>Red</name>
- <key>"red"</key>
- </option>
- <option>
- <name>Green</name>
- <key>"green"</key>
- </option>
- <option>
- <name>Black</name>
- <key>"black"</key>
- </option>
- <option>
- <name>Cyan</name>
- <key>"cyan"</key>
- </option>
- <option>
- <name>Magenta</name>
- <key>"magenta"</key>
- </option>
- <option>
- <name>Yellow</name>
- <key>"yellow"</key>
- </option>
- <option>
- <name>Dark Red</name>
- <key>"dark red"</key>
- </option>
- <option>
- <name>Dark Green</name>
- <key>"dark green"</key>
- </option>
- <option>
- <name>Dark Blue</name>
- <key>"Dark Blue"</key>
- </option>
- <option>
- <name>Blue</name>
- <key>"blue"</key>
- </option>
- <tab>Config</tab>
+ <value>"red"</value>
+ <hide>#if (int($nconnections()) >= 2 or ($type() == "complex" and int($nconnections()) >= 1)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>style1</base_key>
<name>Line 2 Style</name>
<key>style2</key>
- <type>enum</type>
- <hide>#if int($nconnections()) >= 2 then 'part' else 'all'#</hide>
- <option>
- <name>Solid</name>
- <key>1</key>
- </option>
- <option>
- <name>Dash</name>
- <key>2</key>
- </option>
- <option>
- <name>Dots</name>
- <key>3</key>
- </option>
- <option>
- <name>Dash-Dot</name>
- <key>4</key>
- </option>
- <option>
- <name>Dash-Dot-Dot</name>
- <key>5</key>
- </option>
- <option>
- <name>None</name>
- <key>0</key>
- </option>
- <tab>Config</tab>
+ <hide>#if (int($nconnections()) >= 2 or ($type() == "complex" and int($nconnections()) >= 1)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>marker1</base_key>
<name>Line 2 Marker</name>
<key>marker2</key>
- <type>enum</type>
- <hide>#if int($nconnections()) >= 2 then 'part' else 'all'#</hide>
- <option>
- <name>None</name>
- <key>-1</key>
- </option>
- <option>
- <name>Circle</name>
- <key>0</key>
- </option>
- <option>
- <name>Rectangle</name>
- <key>1</key>
- </option>
- <option>
- <name>Diamond</name>
- <key>2</key>
- </option>
- <option>
- <name>Triangle</name>
- <key>3</key>
- </option>
- <option>
- <name>Down Triangle</name>
- <key>4</key>
- </option>
- <option>
- <name>Left Triangle</name>
- <key>6</key>
- </option>
- <option>
- <name>Right Triangle</name>
- <key>7</key>
- </option>
- <option>
- <name>Cross</name>
- <key>8</key>
- </option>
- <option>
- <name>X-Cross</name>
- <key>9</key>
- </option>
- <tab>Config</tab>
+ <hide>#if (int($nconnections()) >= 2 or ($type() == "complex" and int($nconnections()) >= 1)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 2 Alpha</name>
<key>alpha2</key>
- <value>1.0</value>
- <type>float</type>
- <hide>#if int($nconnections()) >= 2 then 'part' else 'all'#</hide>
- <tab>Config</tab>
+ <hide>#if (int($nconnections()) >= 2 or ($type() == "complex" and int($nconnections()) >= 1)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 3 Label</name>
<key>label3</key>
- <type>string</type>
- <hide>#if int($nconnections()) >= 3 then 'part' else 'all'#</hide>
- <tab>Config</tab>
+ <hide>#if (int($nconnections()) >= 3 or ($type() == "complex" and int($nconnections()) >= 2)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>width1</base_key>
<name>Line 3 Width</name>
<key>width3</key>
- <value>1</value>
- <type>int</type>
- <hide>#if int($nconnections()) >= 3 then 'part' else 'all'#</hide>
- <tab>Config</tab>
+ <hide>#if (int($nconnections()) >= 3 or ($type() == "complex" and int($nconnections()) >= 2)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 3 Color</name>
<key>color3</key>
- <type>enum</type>
- <hide>#if int($nconnections()) >= 3 then 'part' else 'all'#</hide>
- <option>
- <name>Green</name>
- <key>"green"</key>
- </option>
- <option>
- <name>Black</name>
- <key>"black"</key>
- </option>
- <option>
- <name>Cyan</name>
- <key>"cyan"</key>
- </option>
- <option>
- <name>Magenta</name>
- <key>"magenta"</key>
- </option>
- <option>
- <name>Yellow</name>
- <key>"yellow"</key>
- </option>
- <option>
- <name>Dark Red</name>
- <key>"dark red"</key>
- </option>
- <option>
- <name>Dark Green</name>
- <key>"dark green"</key>
- </option>
- <option>
- <name>Dark Blue</name>
- <key>"Dark Blue"</key>
- </option>
- <option>
- <name>Blue</name>
- <key>"blue"</key>
- </option>
- <option>
- <name>Red</name>
- <key>"red"</key>
- </option>
- <tab>Config</tab>
+ <value>"green"</value>
+ <hide>#if (int($nconnections()) >= 3 or ($type() == "complex" and int($nconnections()) >= 2)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>style1</base_key>
<name>Line 3 Style</name>
<key>style3</key>
- <type>enum</type>
- <hide>#if int($nconnections()) >= 3 then 'part' else 'all'#</hide>
- <option>
- <name>Solid</name>
- <key>1</key>
- </option>
- <option>
- <name>Dash</name>
- <key>2</key>
- </option>
- <option>
- <name>Dots</name>
- <key>3</key>
- </option>
- <option>
- <name>Dash-Dot</name>
- <key>4</key>
- </option>
- <option>
- <name>Dash-Dot-Dot</name>
- <key>5</key>
- </option>
- <option>
- <name>None</name>
- <key>0</key>
- </option>
- <tab>Config</tab>
+ <hide>#if (int($nconnections()) >= 3 or ($type() == "complex" and int($nconnections()) >= 2)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>marker1</base_key>
<name>Line 3 Marker</name>
<key>marker3</key>
- <type>enum</type>
- <hide>#if int($nconnections()) >= 3 then 'part' else 'all'#</hide>
- <option>
- <name>None</name>
- <key>-1</key>
- </option>
- <option>
- <name>Circle</name>
- <key>0</key>
- </option>
- <option>
- <name>Rectangle</name>
- <key>1</key>
- </option>
- <option>
- <name>Diamond</name>
- <key>2</key>
- </option>
- <option>
- <name>Triangle</name>
- <key>3</key>
- </option>
- <option>
- <name>Down Triangle</name>
- <key>4</key>
- </option>
- <option>
- <name>Left Triangle</name>
- <key>6</key>
- </option>
- <option>
- <name>Right Triangle</name>
- <key>7</key>
- </option>
- <option>
- <name>Cross</name>
- <key>8</key>
- </option>
- <option>
- <name>X-Cross</name>
- <key>9</key>
- </option>
- <tab>Config</tab>
+ <hide>#if (int($nconnections()) >= 3 or ($type() == "complex" and int($nconnections()) >= 2)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 3 Alpha</name>
<key>alpha3</key>
- <value>1.0</value>
- <type>float</type>
- <hide>#if int($nconnections()) >= 3 then 'part' else 'all'#</hide>
- <tab>Config</tab>
+ <hide>#if (int($nconnections()) >= 3 or ($type() == "complex" and int($nconnections()) >= 2)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 4 Label</name>
<key>label4</key>
- <type>string</type>
- <hide>#if int($nconnections()) >= 4 then 'part' else 'all'#</hide>
- <tab>Config</tab>
+ <hide>#if (int($nconnections()) >= 4 or ($type() == "complex" and int($nconnections()) >= 2)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>width1</base_key>
<name>Line 4 Width</name>
<key>width4</key>
- <value>1</value>
- <type>int</type>
- <hide>#if int($nconnections()) >= 4 then 'part' else 'all'#</hide>
- <tab>Config</tab>
+ <hide>#if (int($nconnections()) >= 4 or ($type() == "complex" and int($nconnections()) >= 2)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 4 Color</name>
<key>color4</key>
- <type>enum</type>
- <hide>#if int($nconnections()) >= 4 then 'part' else 'all'#</hide>
- <option>
- <name>Black</name>
- <key>"black"</key>
- </option>
- <option>
- <name>Cyan</name>
- <key>"cyan"</key>
- </option>
- <option>
- <name>Magenta</name>
- <key>"magenta"</key>
- </option>
- <option>
- <name>Yellow</name>
- <key>"yellow"</key>
- </option>
- <option>
- <name>Dark Red</name>
- <key>"dark red"</key>
- </option>
- <option>
- <name>Dark Green</name>
- <key>"dark green"</key>
- </option>
- <option>
- <name>Dark Blue</name>
- <key>"Dark Blue"</key>
- </option>
- <option>
- <name>Blue</name>
- <key>"blue"</key>
- </option>
- <option>
- <name>Red</name>
- <key>"red"</key>
- </option>
- <option>
- <name>Green</name>
- <key>"green"</key>
- </option>
- <tab>Config</tab>
+ <value>"black"</value>
+ <hide>#if (int($nconnections()) >= 4 or ($type() == "complex" and int($nconnections()) >= 2)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>style1</base_key>
<name>Line 4 Style</name>
<key>style4</key>
- <type>enum</type>
- <hide>#if int($nconnections()) >= 4 then 'part' else 'all'#</hide>
- <option>
- <name>Solid</name>
- <key>1</key>
- </option>
- <option>
- <name>Dash</name>
- <key>2</key>
- </option>
- <option>
- <name>Dots</name>
- <key>3</key>
- </option>
- <option>
- <name>Dash-Dot</name>
- <key>4</key>
- </option>
- <option>
- <name>Dash-Dot-Dot</name>
- <key>5</key>
- </option>
- <option>
- <name>None</name>
- <key>0</key>
- </option>
- <tab>Config</tab>
+ <hide>#if (int($nconnections()) >= 4 or ($type() == "complex" and int($nconnections()) >= 2)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>marker1</base_key>
<name>Line 4 Marker</name>
<key>marker4</key>
- <type>enum</type>
- <hide>#if int($nconnections()) >= 4 then 'part' else 'all'#</hide>
- <option>
- <name>None</name>
- <key>-1</key>
- </option>
- <option>
- <name>Circle</name>
- <key>0</key>
- </option>
- <option>
- <name>Rectangle</name>
- <key>1</key>
- </option>
- <option>
- <name>Diamond</name>
- <key>2</key>
- </option>
- <option>
- <name>Triangle</name>
- <key>3</key>
- </option>
- <option>
- <name>Down Triangle</name>
- <key>4</key>
- </option>
- <option>
- <name>Left Triangle</name>
- <key>6</key>
- </option>
- <option>
- <name>Right Triangle</name>
- <key>7</key>
- </option>
- <option>
- <name>Cross</name>
- <key>8</key>
- </option>
- <option>
- <name>X-Cross</name>
- <key>9</key>
- </option>
- <tab>Config</tab>
+ <hide>#if (int($nconnections()) >= 4 or ($type() == "complex" and int($nconnections()) >= 2)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 4 Alpha</name>
<key>alpha4</key>
- <value>1.0</value>
- <type>float</type>
- <hide>#if int($nconnections()) >= 4 then 'part' else 'all'#</hide>
- <tab>Config</tab>
+ <hide>#if (int($nconnections()) >= 4 or ($type() == "complex" and int($nconnections()) >= 2)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 5 Label</name>
<key>label5</key>
- <type>string</type>
- <hide>#if int($nconnections()) >= 5 then 'part' else 'all'#</hide>
- <tab>Config</tab>
+ <hide>#if (int($nconnections()) >= 5 or ($type() == "complex" and int($nconnections()) >= 3)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>width1</base_key>
<name>Line 5 Width</name>
<key>width5</key>
- <value>1</value>
- <type>int</type>
- <hide>#if int($nconnections()) >= 5 then 'part' else 'all'#</hide>
- <tab>Config</tab>
+ <hide>#if (int($nconnections()) >= 5 or ($type() == "complex" and int($nconnections()) >= 3)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 5 Color</name>
<key>color5</key>
- <type>enum</type>
- <hide>#if int($nconnections()) >= 5 then 'part' else 'all'#</hide>
- <option>
- <name>Cyan</name>
- <key>"cyan"</key>
- </option>
- <option>
- <name>Magenta</name>
- <key>"magenta"</key>
- </option>
- <option>
- <name>Yellow</name>
- <key>"yellow"</key>
- </option>
- <option>
- <name>Dark Red</name>
- <key>"dark red"</key>
- </option>
- <option>
- <name>Dark Green</name>
- <key>"dark green"</key>
- </option>
- <option>
- <name>Dark Blue</name>
- <key>"Dark Blue"</key>
- </option>
- <option>
- <name>Blue</name>
- <key>"blue"</key>
- </option>
- <option>
- <name>Red</name>
- <key>"red"</key>
- </option>
- <option>
- <name>Green</name>
- <key>"green"</key>
- </option>
- <option>
- <name>Black</name>
- <key>"black"</key>
- </option>
- <tab>Config</tab>
+ <value>"cyan"</value>
+ <hide>#if (int($nconnections()) >= 5 or ($type() == "complex" and int($nconnections()) >= 3)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>style1</base_key>
<name>Line 5 Style</name>
<key>style5</key>
- <type>enum</type>
- <hide>#if int($nconnections()) >= 5 then 'part' else 'all'#</hide>
- <option>
- <name>Solid</name>
- <key>1</key>
- </option>
- <option>
- <name>Dash</name>
- <key>2</key>
- </option>
- <option>
- <name>Dots</name>
- <key>3</key>
- </option>
- <option>
- <name>Dash-Dot</name>
- <key>4</key>
- </option>
- <option>
- <name>Dash-Dot-Dot</name>
- <key>5</key>
- </option>
- <option>
- <name>None</name>
- <key>0</key>
- </option>
- <tab>Config</tab>
+ <hide>#if (int($nconnections()) >= 5 or ($type() == "complex" and int($nconnections()) >= 3)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>marker1</base_key>
<name>Line 5 Marker</name>
<key>marker5</key>
- <type>enum</type>
- <hide>#if int($nconnections()) >= 5 then 'part' else 'all'#</hide>
- <option>
- <name>None</name>
- <key>-1</key>
- </option>
- <option>
- <name>Circle</name>
- <key>0</key>
- </option>
- <option>
- <name>Rectangle</name>
- <key>1</key>
- </option>
- <option>
- <name>Diamond</name>
- <key>2</key>
- </option>
- <option>
- <name>Triangle</name>
- <key>3</key>
- </option>
- <option>
- <name>Down Triangle</name>
- <key>4</key>
- </option>
- <option>
- <name>Left Triangle</name>
- <key>6</key>
- </option>
- <option>
- <name>Right Triangle</name>
- <key>7</key>
- </option>
- <option>
- <name>Cross</name>
- <key>8</key>
- </option>
- <option>
- <name>X-Cross</name>
- <key>9</key>
- </option>
- <tab>Config</tab>
+ <hide>#if (int($nconnections()) >= 5 or ($type() == "complex" and int($nconnections()) >= 3)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 5 Alpha</name>
<key>alpha5</key>
- <value>1.0</value>
- <type>float</type>
- <hide>#if int($nconnections()) >= 5 then 'part' else 'all'#</hide>
- <tab>Config</tab>
+ <hide>#if (int($nconnections()) >= 5 or ($type() == "complex" and int($nconnections()) >= 3)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 6 Label</name>
<key>label6</key>
- <type>string</type>
- <hide>#if int($nconnections()) >= 6 then 'part' else 'all'#</hide>
- <tab>Config</tab>
+ <hide>#if (int($nconnections()) >= 6 or ($type() == "complex" and int($nconnections()) >= 3)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>width1</base_key>
<name>Line 6 Width</name>
<key>width6</key>
- <value>1</value>
- <type>int</type>
- <hide>#if int($nconnections()) >= 6 then 'part' else 'all'#</hide>
- <tab>Config</tab>
+ <hide>#if (int($nconnections()) >= 6 or ($type() == "complex" and int($nconnections()) >= 3)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 6 Color</name>
<key>color6</key>
- <type>enum</type>
- <hide>#if int($nconnections()) >= 6 then 'part' else 'all'#</hide>
- <option>
- <name>Magenta</name>
- <key>"magenta"</key>
- </option>
- <option>
- <name>Yellow</name>
- <key>"yellow"</key>
- </option>
- <option>
- <name>Dark Red</name>
- <key>"dark red"</key>
- </option>
- <option>
- <name>Dark Green</name>
- <key>"dark green"</key>
- </option>
- <option>
- <name>Dark Blue</name>
- <key>"Dark Blue"</key>
- </option>
- <option>
- <name>Blue</name>
- <key>"blue"</key>
- </option>
- <option>
- <name>Red</name>
- <key>"red"</key>
- </option>
- <option>
- <name>Green</name>
- <key>"green"</key>
- </option>
- <option>
- <name>Black</name>
- <key>"black"</key>
- </option>
- <option>
- <name>Cyan</name>
- <key>"cyan"</key>
- </option>
- <tab>Config</tab>
+ <value>"magenta"</value>
+ <hide>#if (int($nconnections()) >= 6 or ($type() == "complex" and int($nconnections()) >= 3)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>style1</base_key>
<name>Line 6 Style</name>
<key>style6</key>
- <type>enum</type>
- <hide>#if int($nconnections()) >= 6 then 'part' else 'all'#</hide>
- <option>
- <name>Solid</name>
- <key>1</key>
- </option>
- <option>
- <name>Dash</name>
- <key>2</key>
- </option>
- <option>
- <name>Dots</name>
- <key>3</key>
- </option>
- <option>
- <name>Dash-Dot</name>
- <key>4</key>
- </option>
- <option>
- <name>Dash-Dot-Dot</name>
- <key>5</key>
- </option>
- <option>
- <name>None</name>
- <key>0</key>
- </option>
- <tab>Config</tab>
+ <hide>#if (int($nconnections()) >= 6 or ($type() == "complex" and int($nconnections()) >= 3)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>marker1</base_key>
<name>Line 6 Marker</name>
<key>marker6</key>
- <type>enum</type>
- <hide>#if int($nconnections()) >= 6 then 'part' else 'all'#</hide>
- <option>
- <name>None</name>
- <key>-1</key>
- </option>
- <option>
- <name>Circle</name>
- <key>0</key>
- </option>
- <option>
- <name>Rectangle</name>
- <key>1</key>
- </option>
- <option>
- <name>Diamond</name>
- <key>2</key>
- </option>
- <option>
- <name>Triangle</name>
- <key>3</key>
- </option>
- <option>
- <name>Down Triangle</name>
- <key>4</key>
- </option>
- <option>
- <name>Left Triangle</name>
- <key>6</key>
- </option>
- <option>
- <name>Right Triangle</name>
- <key>7</key>
- </option>
- <option>
- <name>Cross</name>
- <key>8</key>
- </option>
- <option>
- <name>X-Cross</name>
- <key>9</key>
- </option>
- <tab>Config</tab>
+ <hide>#if (int($nconnections()) >= 6 or ($type() == "complex" and int($nconnections()) >= 3)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 6 Alpha</name>
<key>alpha6</key>
- <value>1.0</value>
- <type>float</type>
- <hide>#if int($nconnections()) >= 6 then 'part' else 'all'#</hide>
- <tab>Config</tab>
+ <hide>#if (int($nconnections()) >= 6 or ($type() == "complex" and int($nconnections()) >= 3)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 7 Label</name>
<key>label7</key>
- <type>string</type>
- <hide>#if int($nconnections()) >= 7 then 'part' else 'all'#</hide>
- <tab>Config</tab>
+ <hide>#if (int($nconnections()) >= 7 or ($type() == "complex" and int($nconnections()) >= 4)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>width1</base_key>
<name>Line 7 Width</name>
<key>width7</key>
- <value>1</value>
- <type>int</type>
- <hide>#if int($nconnections()) >= 7 then 'part' else 'all'#</hide>
- <tab>Config</tab>
+ <hide>#if (int($nconnections()) >= 7 or ($type() == "complex" and int($nconnections()) >= 4)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 7 Color</name>
<key>color7</key>
- <type>enum</type>
- <hide>#if int($nconnections()) >= 7 then 'part' else 'all'#</hide>
- <option>
- <name>Yellow</name>
- <key>"yellow"</key>
- </option>
- <option>
- <name>Dark Red</name>
- <key>"dark red"</key>
- </option>
- <option>
- <name>Dark Green</name>
- <key>"dark green"</key>
- </option>
- <option>
- <name>Dark Blue</name>
- <key>"Dark Blue"</key>
- </option>
- <option>
- <name>Blue</name>
- <key>"blue"</key>
- </option>
- <option>
- <name>Red</name>
- <key>"red"</key>
- </option>
- <option>
- <name>Green</name>
- <key>"green"</key>
- </option>
- <option>
- <name>Black</name>
- <key>"black"</key>
- </option>
- <option>
- <name>Cyan</name>
- <key>"cyan"</key>
- </option>
- <option>
- <name>Magenta</name>
- <key>"magenta"</key>
- </option>
- <tab>Config</tab>
+ <value>"yellow"</value>
+ <hide>#if (int($nconnections()) >= 7 or ($type() == "complex" and int($nconnections()) >= 4)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>style1</base_key>
<name>Line 7 Style</name>
<key>style7</key>
- <type>enum</type>
- <hide>#if int($nconnections()) >= 7 then 'part' else 'all'#</hide>
- <option>
- <name>Solid</name>
- <key>1</key>
- </option>
- <option>
- <name>Dash</name>
- <key>2</key>
- </option>
- <option>
- <name>Dots</name>
- <key>3</key>
- </option>
- <option>
- <name>Dash-Dot</name>
- <key>4</key>
- </option>
- <option>
- <name>Dash-Dot-Dot</name>
- <key>5</key>
- </option>
- <option>
- <name>None</name>
- <key>0</key>
- </option>
- <tab>Config</tab>
+ <hide>#if (int($nconnections()) >= 7 or ($type() == "complex" and int($nconnections()) >= 4)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>marker1</base_key>
<name>Line 7 Marker</name>
<key>marker7</key>
- <type>enum</type>
- <hide>#if int($nconnections()) >= 7 then 'part' else 'all'#</hide>
- <option>
- <name>None</name>
- <key>-1</key>
- </option>
- <option>
- <name>Circle</name>
- <key>0</key>
- </option>
- <option>
- <name>Rectangle</name>
- <key>1</key>
- </option>
- <option>
- <name>Diamond</name>
- <key>2</key>
- </option>
- <option>
- <name>Triangle</name>
- <key>3</key>
- </option>
- <option>
- <name>Down Triangle</name>
- <key>4</key>
- </option>
- <option>
- <name>Left Triangle</name>
- <key>6</key>
- </option>
- <option>
- <name>Right Triangle</name>
- <key>7</key>
- </option>
- <option>
- <name>Cross</name>
- <key>8</key>
- </option>
- <option>
- <name>X-Cross</name>
- <key>9</key>
- </option>
- <tab>Config</tab>
+ <hide>#if (int($nconnections()) >= 7 or ($type() == "complex" and int($nconnections()) >= 4)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 7 Alpha</name>
<key>alpha7</key>
- <value>1.0</value>
- <type>float</type>
- <hide>#if int($nconnections()) >= 7 then 'part' else 'all'#</hide>
- <tab>Config</tab>
+ <hide>#if (int($nconnections()) >= 7 or ($type() == "complex" and int($nconnections()) >= 4)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 8 Label</name>
<key>label8</key>
- <type>string</type>
- <hide>#if int($nconnections()) >= 8 then 'part' else 'all'#</hide>
- <tab>Config</tab>
+ <hide>#if (int($nconnections()) >= 8 or ($type() == "complex" and int($nconnections()) >= 4)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>width1</base_key>
<name>Line 8 Width</name>
<key>width8</key>
- <value>1</value>
- <type>int</type>
- <hide>#if int($nconnections()) >= 8 then 'part' else 'all'#</hide>
- <tab>Config</tab>
+ <hide>#if (int($nconnections()) >= 8 or ($type() == "complex" and int($nconnections()) >= 4)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 8 Color</name>
<key>color8</key>
- <type>enum</type>
- <hide>#if int($nconnections()) >= 8 then 'part' else 'all'#</hide>
- <option>
- <name>Dark Red</name>
- <key>"dark red"</key>
- </option>
- <option>
- <name>Dark Green</name>
- <key>"dark green"</key>
- </option>
- <option>
- <name>Dark Blue</name>
- <key>"Dark Blue"</key>
- </option>
- <option>
- <name>Blue</name>
- <key>"blue"</key>
- </option>
- <option>
- <name>Red</name>
- <key>"red"</key>
- </option>
- <option>
- <name>Green</name>
- <key>"green"</key>
- </option>
- <option>
- <name>Black</name>
- <key>"black"</key>
- </option>
- <option>
- <name>Cyan</name>
- <key>"cyan"</key>
- </option>
- <option>
- <name>Magenta</name>
- <key>"magenta"</key>
- </option>
- <option>
- <name>Yellow</name>
- <key>"yellow"</key>
- </option>
- <tab>Config</tab>
+ <value>"dark red"</value>
+ <hide>#if (int($nconnections()) >= 8 or ($type() == "complex" and int($nconnections()) >= 4)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>style1</base_key>
<name>Line 8 Style</name>
<key>style8</key>
- <type>enum</type>
- <hide>#if int($nconnections()) >= 8 then 'part' else 'all'#</hide>
- <option>
- <name>Solid</name>
- <key>1</key>
- </option>
- <option>
- <name>Dash</name>
- <key>2</key>
- </option>
- <option>
- <name>Dots</name>
- <key>3</key>
- </option>
- <option>
- <name>Dash-Dot</name>
- <key>4</key>
- </option>
- <option>
- <name>Dash-Dot-Dot</name>
- <key>5</key>
- </option>
- <option>
- <name>None</name>
- <key>0</key>
- </option>
- <tab>Config</tab>
+ <hide>#if (int($nconnections()) >= 8 or ($type() == "complex" and int($nconnections()) >= 4)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>marker1</base_key>
<name>Line 8 Marker</name>
<key>marker8</key>
- <type>enum</type>
- <hide>#if int($nconnections()) >= 8 then 'part' else 'all'#</hide>
- <option>
- <name>None</name>
- <key>-1</key>
- </option>
- <option>
- <name>Circle</name>
- <key>0</key>
- </option>
- <option>
- <name>Rectangle</name>
- <key>1</key>
- </option>
- <option>
- <name>Diamond</name>
- <key>2</key>
- </option>
- <option>
- <name>Triangle</name>
- <key>3</key>
- </option>
- <option>
- <name>Down Triangle</name>
- <key>4</key>
- </option>
- <option>
- <name>Left Triangle</name>
- <key>6</key>
- </option>
- <option>
- <name>Right Triangle</name>
- <key>7</key>
- </option>
- <option>
- <name>Cross</name>
- <key>8</key>
- </option>
- <option>
- <name>X-Cross</name>
- <key>9</key>
- </option>
- <tab>Config</tab>
+ <hide>#if (int($nconnections()) >= 8 or ($type() == "complex" and int($nconnections()) >= 4)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 8 Alpha</name>
<key>alpha8</key>
- <value>1.0</value>
- <type>float</type>
- <hide>#if int($nconnections()) >= 8 then 'part' else 'all'#</hide>
- <tab>Config</tab>
+ <hide>#if (int($nconnections()) >= 8 or ($type() == "complex" and int($nconnections()) >= 4)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 9 Label</name>
<key>label9</key>
- <type>string</type>
- <hide>#if int($nconnections()) >= 9 then 'part' else 'all'#</hide>
- <tab>Config</tab>
+ <hide>#if (int($nconnections()) >= 9 or ($type() == "complex" and int($nconnections()) >= 5)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>width1</base_key>
<name>Line 9 Width</name>
<key>width9</key>
- <value>1</value>
- <type>int</type>
- <hide>#if int($nconnections()) >= 9 then 'part' else 'all'#</hide>
- <tab>Config</tab>
+ <hide>#if (int($nconnections()) >= 9 or ($type() == "complex" and int($nconnections()) >= 5)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 9 Color</name>
<key>color9</key>
- <type>enum</type>
- <hide>#if int($nconnections()) >= 9 then 'part' else 'all'#</hide>
- <option>
- <name>Dark Green</name>
- <key>"dark green"</key>
- </option>
- <option>
- <name>Dark Blue</name>
- <key>"Dark Blue"</key>
- </option>
- <option>
- <name>Blue</name>
- <key>"blue"</key>
- </option>
- <option>
- <name>Red</name>
- <key>"red"</key>
- </option>
- <option>
- <name>Green</name>
- <key>"green"</key>
- </option>
- <option>
- <name>Black</name>
- <key>"black"</key>
- </option>
- <option>
- <name>Cyan</name>
- <key>"cyan"</key>
- </option>
- <option>
- <name>Magenta</name>
- <key>"magenta"</key>
- </option>
- <option>
- <name>Yellow</name>
- <key>"yellow"</key>
- </option>
- <option>
- <name>Dark Red</name>
- <key>"dark red"</key>
- </option>
- <tab>Config</tab>
+ <value>"dark green"</value>
+ <hide>#if (int($nconnections()) >= 9 or ($type() == "complex" and int($nconnections()) >= 5)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>style1</base_key>
<name>Line 9 Style</name>
<key>style9</key>
- <type>enum</type>
- <hide>#if int($nconnections()) >= 9 then 'part' else 'all'#</hide>
- <option>
- <name>Solid</name>
- <key>1</key>
- </option>
- <option>
- <name>Dash</name>
- <key>2</key>
- </option>
- <option>
- <name>Dots</name>
- <key>3</key>
- </option>
- <option>
- <name>Dash-Dot</name>
- <key>4</key>
- </option>
- <option>
- <name>Dash-Dot-Dot</name>
- <key>5</key>
- </option>
- <option>
- <name>None</name>
- <key>0</key>
- </option>
- <tab>Config</tab>
+ <hide>#if (int($nconnections()) >= 9 or ($type() == "complex" and int($nconnections()) >= 5)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>marker1</base_key>
<name>Line 9 Marker</name>
<key>marker9</key>
- <type>enum</type>
- <hide>#if int($nconnections()) >= 9 then 'part' else 'all'#</hide>
- <option>
- <name>None</name>
- <key>-1</key>
- </option>
- <option>
- <name>Circle</name>
- <key>0</key>
- </option>
- <option>
- <name>Rectangle</name>
- <key>1</key>
- </option>
- <option>
- <name>Diamond</name>
- <key>2</key>
- </option>
- <option>
- <name>Triangle</name>
- <key>3</key>
- </option>
- <option>
- <name>Down Triangle</name>
- <key>4</key>
- </option>
- <option>
- <name>Left Triangle</name>
- <key>6</key>
- </option>
- <option>
- <name>Right Triangle</name>
- <key>7</key>
- </option>
- <option>
- <name>Cross</name>
- <key>8</key>
- </option>
- <option>
- <name>X-Cross</name>
- <key>9</key>
- </option>
- <tab>Config</tab>
+ <hide>#if (int($nconnections()) >= 9 or ($type() == "complex" and int($nconnections()) >= 5)) then 'part' else 'all'#</hide>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 9 Alpha</name>
<key>alpha9</key>
- <value>1.0</value>
- <type>float</type>
- <hide>#if int($nconnections()) >= 9 then 'part' else 'all'#</hide>
- <tab>Config</tab>
+ <hide>#if (int($nconnections()) >= 9 or ($type() == "complex" and int($nconnections()) >= 5)) then 'part' else 'all'#</hide>
+ </param>
+
+
+ <param>
+ <base_key>label1</base_key>
+ <name>Line 10 Label</name>
+ <key>label10</key>
+ <hide>#if (int($nconnections()) >= 10 or ($type() == "complex" and int($nconnections()) >= 5)) then 'part' else 'all'#</hide>
+ </param>
+
+ <param>
+ <base_key>width1</base_key>
+ <name>Line 10 Width</name>
+ <key>width10</key>
+ <hide>#if (int($nconnections()) >= 10 or ($type() == "complex" and int($nconnections()) >= 5)) then 'part' else 'all'#</hide>
+ </param>
+
+ <param>
+ <base_key>color1</base_key>
+ <name>Line 10 Color</name>
+ <key>color10</key>
+ <value>"dark blue"</value>
+ <hide>#if (int($nconnections()) >= 10 or ($type() == "complex" and int($nconnections()) >= 5)) then 'part' else 'all'#</hide>
+ </param>
+
+ <param>
+ <base_key>style1</base_key>
+ <name>Line 10 Style</name>
+ <key>style10</key>
+ <hide>#if (int($nconnections()) >= 10 or ($type() == "complex" and int($nconnections()) >= 5)) then 'part' else 'all'#</hide>
</param>
+ <param>
+ <base_key>marker1</base_key>
+ <name>Line 10 Marker</name>
+ <key>marker10</key>
+ <hide>#if (int($nconnections()) >= 10 or ($type() == "complex" and int($nconnections()) >= 5)) then 'part' else 'all'#</hide>
+ </param>
+
+ <param>
+ <base_key>alpha1</base_key>
+ <name>Line 10 Alpha</name>
+ <key>alpha10</key>
+ <hide>#if (int($nconnections()) >= 10 or ($type() == "complex" and int($nconnections()) >= 5)) then 'part' else 'all'#</hide>
+ </param>
+
+
<check>$tr_chan &lt; 2*$nconnections</check>
<sink>
diff --git a/gr-qtgui/grc/qtgui_waterfall_sink_x.xml b/gr-qtgui/grc/qtgui_waterfall_sink_x.xml
index 0d71024fb2..943aa9d962 100644
--- a/gr-qtgui/grc/qtgui_waterfall_sink_x.xml
+++ b/gr-qtgui/grc/qtgui_waterfall_sink_x.xml
@@ -23,11 +23,11 @@ qtgui.$(type.fcn)(
self.$(id).set_update_time($update_time)
labels = [$label1, $label2, $label3, $label4, $label5,
- $label6, $label7, $label8, $label9]
+ $label6, $label7, $label8, $label9, $label10]
colors = [$color1, $color2, $color3, $color4, $color5,
- $color6, $color7, $color8, $color9]
+ $color6, $color7, $color8, $color9, $color10]
alphas = [$alpha1, $alpha2, $alpha3, $alpha4, $alpha5,
- $alpha6, $alpha7, $alpha8, $alpha9]
+ $alpha6, $alpha7, $alpha8, $alpha9, $alpha10]
for i in xrange($nconnections):
if len(labels[i]) == 0:
self.$(id).set_line_label(i, "Data {0}".format(i))
@@ -182,338 +182,200 @@ $(gui_hint()($win))</make>
<param>
+ <base_key>label1</base_key>
<name>Line 2 Label</name>
<key>label2</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 2 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 2 Color</name>
<key>color2</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 2 then 'part' else 'all'#</hide>
- <option>
- <name>Multi Color</name>
- <key>0</key>
- </option>
- <option>
- <name>White Hot</name>
- <key>1</key>
- </option>
- <option>
- <name>Black Hot</name>
- <key>2</key>
- </option>
- <option>
- <name>Incandescent</name>
- <key>3</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 2 Alpha</name>
<key>alpha2</key>
- <value>1.0</value>
- <type>float</type>
<hide>#if int($nconnections()) >= 2 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 3 Label</name>
<key>label3</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 3 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 3 Color</name>
<key>color3</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 3 then 'part' else 'all'#</hide>
- <option>
- <name>Multi Color</name>
- <key>0</key>
- </option>
- <option>
- <name>White Hot</name>
- <key>1</key>
- </option>
- <option>
- <name>Black Hot</name>
- <key>2</key>
- </option>
- <option>
- <name>Incandescent</name>
- <key>3</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 3 Alpha</name>
<key>alpha3</key>
- <value>1.0</value>
- <type>float</type>
<hide>#if int($nconnections()) >= 3 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 4 Label</name>
<key>label4</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 4 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 4 Color</name>
<key>color4</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 4 then 'part' else 'all'#</hide>
- <option>
- <name>Multi Color</name>
- <key>0</key>
- </option>
- <option>
- <name>White Hot</name>
- <key>1</key>
- </option>
- <option>
- <name>Black Hot</name>
- <key>2</key>
- </option>
- <option>
- <name>Incandescent</name>
- <key>3</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 4 Alpha</name>
<key>alpha4</key>
- <value>1.0</value>
- <type>float</type>
<hide>#if int($nconnections()) >= 4 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 5 Label</name>
<key>label5</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 5 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 5 Color</name>
<key>color5</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 5 then 'part' else 'all'#</hide>
- <option>
- <name>Multi Color</name>
- <key>0</key>
- </option>
- <option>
- <name>White Hot</name>
- <key>1</key>
- </option>
- <option>
- <name>Black Hot</name>
- <key>2</key>
- </option>
- <option>
- <name>Incandescent</name>
- <key>3</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 5 Alpha</name>
<key>alpha5</key>
- <value>1.0</value>
- <type>float</type>
<hide>#if int($nconnections()) >= 5 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 6 Label</name>
<key>label6</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 6 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 6 Color</name>
<key>color6</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 6 then 'part' else 'all'#</hide>
- <option>
- <name>Multi Color</name>
- <key>0</key>
- </option>
- <option>
- <name>White Hot</name>
- <key>1</key>
- </option>
- <option>
- <name>Black Hot</name>
- <key>2</key>
- </option>
- <option>
- <name>Incandescent</name>
- <key>3</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 6 Alpha</name>
<key>alpha6</key>
- <value>1.0</value>
- <type>float</type>
<hide>#if int($nconnections()) >= 6 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 7 Label</name>
<key>label7</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 7 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 7 Color</name>
<key>color7</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 7 then 'part' else 'all'#</hide>
- <option>
- <name>Multi Color</name>
- <key>0</key>
- </option>
- <option>
- <name>White Hot</name>
- <key>1</key>
- </option>
- <option>
- <name>Black Hot</name>
- <key>2</key>
- </option>
- <option>
- <name>Incandescent</name>
- <key>3</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 7 Alpha</name>
<key>alpha7</key>
- <value>1.0</value>
- <type>float</type>
<hide>#if int($nconnections()) >= 7 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 8 Label</name>
<key>label8</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 8 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 8 Color</name>
<key>color8</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 8 then 'part' else 'all'#</hide>
- <option>
- <name>Multi Color</name>
- <key>0</key>
- </option>
- <option>
- <name>White Hot</name>
- <key>1</key>
- </option>
- <option>
- <name>Black Hot</name>
- <key>2</key>
- </option>
- <option>
- <name>Incandescent</name>
- <key>3</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 8 Alpha</name>
<key>alpha8</key>
- <value>1.0</value>
- <type>float</type>
<hide>#if int($nconnections()) >= 8 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>label1</base_key>
<name>Line 9 Label</name>
<key>label9</key>
- <type>string</type>
<hide>#if int($nconnections()) >= 9 then 'part' else 'all'#</hide>
- <tab>Config</tab>
</param>
<param>
+ <base_key>color1</base_key>
<name>Line 9 Color</name>
<key>color9</key>
- <type>enum</type>
<hide>#if int($nconnections()) >= 9 then 'part' else 'all'#</hide>
- <option>
- <name>Multi Color</name>
- <key>0</key>
- </option>
- <option>
- <name>White Hot</name>
- <key>1</key>
- </option>
- <option>
- <name>Black Hot</name>
- <key>2</key>
- </option>
- <option>
- <name>Incandescent</name>
- <key>3</key>
- </option>
- <tab>Config</tab>
</param>
<param>
+ <base_key>alpha1</base_key>
<name>Line 9 Alpha</name>
<key>alpha9</key>
- <value>1.0</value>
- <type>float</type>
<hide>#if int($nconnections()) >= 9 then 'part' else 'all'#</hide>
- <tab>Config</tab>
+ </param>
+
+
+ <param>
+ <base_key>label1</base_key>
+ <name>Line 10 Label</name>
+ <key>label10</key>
+ <hide>#if int($nconnections()) >= 10 then 'part' else 'all'#</hide>
+ </param>
+
+ <param>
+ <base_key>color1</base_key>
+ <name>Line 10 Color</name>
+ <key>color10</key>
+ <hide>#if int($nconnections()) >= 10 then 'part' else 'all'#</hide>
+ </param>
+
+ <param>
+ <base_key>alpha1</base_key>
+ <name>Line 10 Alpha</name>
+ <key>alpha10</key>
+ <hide>#if int($nconnections()) >= 10 then 'part' else 'all'#</hide>
</param>
diff --git a/gr-qtgui/lib/freq_sink_f_impl.cc b/gr-qtgui/lib/freq_sink_f_impl.cc
index 4f5ba5a386..b661f7b07b 100644
--- a/gr-qtgui/lib/freq_sink_f_impl.cc
+++ b/gr-qtgui/lib/freq_sink_f_impl.cc
@@ -148,7 +148,7 @@ namespace gr {
d_main_gui = new FreqDisplayForm(d_nconnections, d_parent);
set_fft_window(d_wintype);
set_fft_size(d_fftsize);
- set_frequency_range(d_center_freq, d_bandwidth/2.0);
+ set_frequency_range(d_center_freq, d_bandwidth);
// initialize update time to 10 times a second
set_update_time(0.1);
diff --git a/grc/base/Block.py b/grc/base/Block.py
index faa48d99b4..5a91810b7d 100644
--- a/grc/base/Block.py
+++ b/grc/base/Block.py
@@ -23,7 +23,7 @@ from Element import Element
from Cheetah.Template import Template
from UserDict import UserDict
-
+from itertools import imap
class TemplateArg(UserDict):
"""
@@ -103,7 +103,7 @@ class Block(Element):
'hide': 'all',
})
))
- for param in map(lambda n: self.get_parent().get_parent().Param(block=self, n=n), params):
+ for param in imap(lambda n: self.get_parent().get_parent().Param(block=self, n=n), params):
key = param.get_key()
#test against repeated keys
if key in self.get_param_keys():
diff --git a/grc/base/Param.py b/grc/base/Param.py
index f8bfe0d256..33ba7c3dbb 100644
--- a/grc/base/Param.py
+++ b/grc/base/Param.py
@@ -68,11 +68,19 @@ class Param(Element):
block: the parent element
n: the nested odict
"""
- #grab the data
+ # if the base key is a valid param key, copy its data and overlay this params data
+ base_key = n.find('base_key')
+ if base_key and base_key in block.get_param_keys():
+ n_expanded = block.get_param(base_key)._n.copy()
+ n_expanded.update(n)
+ n = n_expanded
+ # save odict in case this param will be base for another
+ self._n = n
+ # parse the data
self._name = n.find('name')
self._key = n.find('key')
value = n.find('value') or ''
- self._type = n.find('type')
+ self._type = n.find('type') or 'raw'
self._hide = n.find('hide') or ''
self._tab_label = n.find('tab') or block.get_param_tab_labels()[0]
if not self._tab_label in block.get_param_tab_labels():
diff --git a/grc/gui/Param.py b/grc/gui/Param.py
index f0e5a2fcb2..2ca20fab2a 100644
--- a/grc/gui/Param.py
+++ b/grc/gui/Param.py
@@ -23,6 +23,7 @@ import pygtk
pygtk.require('2.0')
import gtk
import Colors
+import os
class InputParam(gtk.HBox):
"""The base class for an input parameter inside the input parameters dialog."""
@@ -36,6 +37,7 @@ class InputParam(gtk.HBox):
self.pack_start(self.label, False)
self.set_markup = lambda m: self.label.set_markup(m)
self.tp = None
+ self._changed_but_unchecked = False
#connect events
self.connect('show', self._update_gui)
def set_color(self, color): pass
@@ -49,7 +51,9 @@ class InputParam(gtk.HBox):
has_cb = \
hasattr(self.param.get_parent(), 'get_callbacks') and \
filter(lambda c: self.param.get_key() in c, self.param.get_parent()._callbacks)
- self.set_markup(Utils.parse_template(PARAM_LABEL_MARKUP_TMPL, param=self.param, has_cb=has_cb))
+ self.set_markup(Utils.parse_template(PARAM_LABEL_MARKUP_TMPL,
+ param=self.param, has_cb=has_cb,
+ modified=self._changed_but_unchecked))
#set the color
self.set_color(self.param.get_color())
#set the tooltip
@@ -60,7 +64,14 @@ class InputParam(gtk.HBox):
if self.param.get_hide() == 'all': self.hide_all()
else: self.show_all()
- def _handle_changed(self, *args):
+ def _mark_changed(self, *args):
+ """
+ Mark this param as modified on change, but validate only on focus-lost
+ """
+ self._changed_but_unchecked = True
+ self._update_gui()
+
+ def _apply_change(self, *args):
"""
Handle a gui change by setting the new param value,
calling the callback (if applicable), and updating.
@@ -71,6 +82,7 @@ class InputParam(gtk.HBox):
if self._callback: self._callback(*args)
else: self.param.validate()
#gui update
+ self._changed_but_unchecked = False
self._update_gui()
class EntryParam(InputParam):
@@ -80,7 +92,8 @@ class EntryParam(InputParam):
InputParam.__init__(self, *args, **kwargs)
self._input = gtk.Entry()
self._input.set_text(self.param.get_value())
- self._input.connect('changed', self._handle_changed)
+ self._input.connect('changed', self._mark_changed)
+ self._input.connect('focus-out-event', self._apply_change)
self.pack_start(self._input, True)
def get_text(self): return self._input.get_text()
def set_color(self, color):
@@ -96,7 +109,7 @@ class EnumParam(InputParam):
self._input = gtk.combo_box_new_text()
for option in self.param.get_options(): self._input.append_text(option.get_name())
self._input.set_active(self.param.get_option_keys().index(self.param.get_value()))
- self._input.connect('changed', self._handle_changed)
+ self._input.connect('changed', self._apply_change)
self.pack_start(self._input, False)
def get_text(self): return self.param.get_option_keys()[self._input.get_active()]
def set_tooltip_text(self, text): self._input.set_tooltip_text(text)
@@ -112,8 +125,9 @@ class EnumEntryParam(InputParam):
except:
self._input.set_active(-1)
self._input.get_child().set_text(self.param.get_value())
- self._input.connect('changed', self._handle_changed)
- self._input.get_child().connect('changed', self._handle_changed)
+ self._input.connect('changed', self._apply_change)
+ self._input.get_child().connect('changed', self._mark_changed)
+ self._input.get_child().connect('focus-out-event', self._apply_change)
self.pack_start(self._input, False)
def get_text(self):
if self._input.get_active() == -1: return self._input.get_child().get_text()
@@ -130,12 +144,50 @@ class EnumEntryParam(InputParam):
self._input.get_child().modify_base(gtk.STATE_NORMAL, Colors.ENTRYENUM_CUSTOM_COLOR)
self._input.get_child().modify_text(gtk.STATE_NORMAL, Colors.PARAM_ENTRY_TEXT_COLOR)
+
+class FileParam(EntryParam):
+ """Provide an entry box for filename and a button to browse for a file."""
+
+ def __init__(self, *args, **kwargs):
+ EntryParam.__init__(self, *args, **kwargs)
+ input = gtk.Button('...')
+ input.connect('clicked', self._handle_clicked)
+ self.pack_start(input, False)
+
+ def _handle_clicked(self, widget=None):
+ """
+ If the button was clicked, open a file dialog in open/save format.
+ Replace the text in the entry with the new filename from the file dialog.
+ """
+ #get the paths
+ file_path = self.param.is_valid() and self.param.get_evaluated() or ''
+ (dirname, basename) = os.path.isfile(file_path) and os.path.split(file_path) or (file_path, '')
+ if not os.path.exists(dirname): dirname = os.getcwd() #fix bad paths
+ #build the dialog
+ if self.param.get_type() == 'file_open':
+ file_dialog = gtk.FileChooserDialog('Open a Data File...', None,
+ gtk.FILE_CHOOSER_ACTION_OPEN, ('gtk-cancel',gtk.RESPONSE_CANCEL,'gtk-open',gtk.RESPONSE_OK))
+ elif self.param.get_type() == 'file_save':
+ file_dialog = gtk.FileChooserDialog('Save a Data File...', None,
+ gtk.FILE_CHOOSER_ACTION_SAVE, ('gtk-cancel',gtk.RESPONSE_CANCEL, 'gtk-save',gtk.RESPONSE_OK))
+ file_dialog.set_do_overwrite_confirmation(True)
+ file_dialog.set_current_name(basename) #show the current filename
+ file_dialog.set_current_folder(dirname) #current directory
+ file_dialog.set_select_multiple(False)
+ file_dialog.set_local_only(True)
+ if gtk.RESPONSE_OK == file_dialog.run(): #run the dialog
+ file_path = file_dialog.get_filename() #get the file path
+ self._input.set_text(file_path)
+ self._apply_change()
+ file_dialog.destroy() #destroy the dialog
+
+
PARAM_MARKUP_TMPL="""\
#set $foreground = $param.is_valid() and 'black' or 'red'
<span foreground="$foreground" font_desc="Sans 7.5"><b>$encode($param.get_name()): </b>$encode(repr($param))</span>"""
PARAM_LABEL_MARKUP_TMPL="""\
-#set $foreground = $param.is_valid() and 'black' or 'red'
+#set $foreground = $modified and 'blue' or $param.is_valid() and 'black' or 'red'
#set $underline = $has_cb and 'low' or 'none'
<span underline="$underline" foreground="$foreground" font_desc="Sans 9">$encode($param.get_name())</span>"""
@@ -179,8 +231,15 @@ class Param(Element):
Returns:
gtk input class
"""
- if self.is_enum(): return EnumParam(self, *args, **kwargs)
- if self.get_options(): return EnumEntryParam(self, *args, **kwargs)
+ if self.get_type() in ('file_open', 'file_save'):
+ return FileParam(self, *args, **kwargs)
+
+ elif self.is_enum():
+ return EnumParam(self, *args, **kwargs)
+
+ elif self.get_options():
+ return EnumEntryParam(self, *args, **kwargs)
+
return EntryParam(self, *args, **kwargs)
def get_markup(self):
diff --git a/grc/python/Param.py b/grc/python/Param.py
index 3daa37f637..3d9e52e25f 100644
--- a/grc/python/Param.py
+++ b/grc/python/Param.py
@@ -19,13 +19,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
from .. base.Param import Param as _Param
from .. gui.Param import Param as _GUIParam
-from .. gui.Param import EntryParam
import Constants
import numpy
-import os
-import pygtk
-pygtk.require('2.0')
-import gtk
from gnuradio import eng_notation
import re
from gnuradio import gr
@@ -33,41 +28,6 @@ from gnuradio import gr
_check_id_matcher = re.compile('^[a-z|A-Z]\w*$')
_show_id_matcher = re.compile('^(variable\w*|parameter|options|notebook)$')
-class FileParam(EntryParam):
- """Provide an entry box for filename and a button to browse for a file."""
-
- def __init__(self, *args, **kwargs):
- EntryParam.__init__(self, *args, **kwargs)
- input = gtk.Button('...')
- input.connect('clicked', self._handle_clicked)
- self.pack_start(input, False)
-
- def _handle_clicked(self, widget=None):
- """
- If the button was clicked, open a file dialog in open/save format.
- Replace the text in the entry with the new filename from the file dialog.
- """
- #get the paths
- file_path = self.param.is_valid() and self.param.get_evaluated() or ''
- (dirname, basename) = os.path.isfile(file_path) and os.path.split(file_path) or (file_path, '')
- if not os.path.exists(dirname): dirname = os.getcwd() #fix bad paths
- #build the dialog
- if self.param.get_type() == 'file_open':
- file_dialog = gtk.FileChooserDialog('Open a Data File...', None,
- gtk.FILE_CHOOSER_ACTION_OPEN, ('gtk-cancel',gtk.RESPONSE_CANCEL,'gtk-open',gtk.RESPONSE_OK))
- elif self.param.get_type() == 'file_save':
- file_dialog = gtk.FileChooserDialog('Save a Data File...', None,
- gtk.FILE_CHOOSER_ACTION_SAVE, ('gtk-cancel',gtk.RESPONSE_CANCEL, 'gtk-save',gtk.RESPONSE_OK))
- file_dialog.set_do_overwrite_confirmation(True)
- file_dialog.set_current_name(basename) #show the current filename
- file_dialog.set_current_folder(dirname) #current directory
- file_dialog.set_select_multiple(False)
- file_dialog.set_local_only(True)
- if gtk.RESPONSE_OK == file_dialog.run(): #run the dialog
- file_path = file_dialog.get_filename() #get the file path
- self._input.set_text(file_path)
- self._handle_changed()
- file_dialog.destroy() #destroy the dialog
#blacklist certain ids, its not complete, but should help
import __builtin__
@@ -162,10 +122,6 @@ class Param(_Param, _GUIParam):
##################################################
return _truncate(dt_str, truncate)
- def get_input(self, *args, **kwargs):
- if self.get_type() in ('file_open', 'file_save'): return FileParam(self, *args, **kwargs)
- return _GUIParam.get_input(self, *args, **kwargs)
-
def get_color(self):
"""
Get the color that represents this param's type.
diff --git a/grc/python/block.dtd b/grc/python/block.dtd
index b37c0ff760..18e53fda2a 100644
--- a/grc/python/block.dtd
+++ b/grc/python/block.dtd
@@ -30,7 +30,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
Sub level elements.
-->
<!ELEMENT param_tab_order (tab+)>
-<!ELEMENT param (name, key, value?, type, hide?, option*, tab?)>
+<!ELEMENT param (base_key?, name, key, value?, type?, hide?, option*, tab?)>
<!ELEMENT option (name, key, opt*)>
<!ELEMENT sink (name, type, vlen?, nports?, optional?)>
<!ELEMENT source (name, type, vlen?, nports?, optional?)>
@@ -44,6 +44,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
<!ELEMENT grc_source (#PCDATA)>
<!ELEMENT tab (#PCDATA)>
<!ELEMENT name (#PCDATA)>
+<!ELEMENT base_key (#PCDATA)>
<!ELEMENT key (#PCDATA)>
<!ELEMENT check (#PCDATA)>
<!ELEMENT bus_sink (#PCDATA)>
diff --git a/volk/lib/qa_utils.cc b/volk/lib/qa_utils.cc
index 8007fe75a6..f30f0097ae 100644
--- a/volk/lib/qa_utils.cc
+++ b/volk/lib/qa_utils.cc
@@ -14,6 +14,7 @@
#include <volk/volk.h>
#include <volk/volk_cpu.h>
#include <volk/volk_common.h>
+#include <volk/volk_malloc.h>
#include <boost/typeof/typeof.hpp>
#include <boost/type_traits.hpp>
#include <stdio.h>
@@ -171,7 +172,7 @@ static void get_signatures_from_name(std::vector<volk_type_t> &inputsig,
}
//we don't need an output signature (some fn's operate on the input data, "in place"), but we do need at least one input!
assert(inputsig.size() != 0);
-
+
}
inline void run_cast_test1(volk_fn_1arg func, std::vector<void *> &buffs, unsigned int vlen, unsigned int iter, std::string arch) {
@@ -232,8 +233,8 @@ bool fcompare(t *in1, t *in2, unsigned int vlen, float tol) {
bool fail = false;
int print_max_errs = 10;
for(unsigned int i=0; i<vlen; i++) {
- // for very small numbers we'll see round off errors due to limited
- // precision. So a special test case...
+ // for very small numbers we'll see round off errors due to limited
+ // precision. So a special test case...
if(fabs(((t *)(in1))[i]) < 1e-30) {
if( fabs( ((t *)(in2))[i] ) > tol )
{
@@ -264,8 +265,8 @@ bool ccompare(t *in1, t *in2, unsigned int vlen, float tol) {
t err = std::sqrt(diff[0] * diff[0] + diff[1] * diff[1]);
t norm = std::sqrt(in1[i] * in1[i] + in1[i+1] * in1[i+1]);
- // for very small numbers we'll see round off errors due to limited
- // precision. So a special test case...
+ // for very small numbers we'll see round off errors due to limited
+ // precision. So a special test case...
if (norm < 1e-30) {
if (err > tol)
{
@@ -307,11 +308,17 @@ class volk_qa_aligned_mem_pool{
public:
void *get_new(size_t size){
size_t alignment = volk_get_alignment();
- _mems.push_back(std::vector<char>(size + alignment-1, 0));
- size_t ptr = size_t(&_mems.back().front());
- return (void *)((ptr + alignment-1) & ~(alignment-1));
+ void* ptr = volk_malloc(size, alignment);
+ memset(ptr, 0x00, size);
+ _mems.push_back(ptr);
+ return ptr;
+ }
+ ~volk_qa_aligned_mem_pool() {
+ for(unsigned int ii = 0; ii < _mems.size(); ++ii) {
+ volk_free(_mems[ii]);
+ }
}
-private: std::list<std::vector<char> > _mems;
+private: std::vector<void * > _mems;
};
bool run_volk_tests(volk_func_desc_t desc,
@@ -337,7 +344,7 @@ bool run_volk_tests(volk_func_desc_t desc,
// The bug is the casting/assignment below do not happen, which results in false
// positives when testing for errors in fcompare and icompare.
// Since this only happens on armhf (reported for Cortex A9 and A15) combined with
- // the following fixes it is suspected to be a compiler bug.
+ // the following fixes it is suspected to be a compiler bug.
// Bug 1272024 on launchpad has been filed with Linaro GCC.
const float tol_f = tol*1.0000001;
const unsigned int tol_i = static_cast<const unsigned int>(tol);
@@ -357,7 +364,7 @@ bool run_volk_tests(volk_func_desc_t desc,
//now we have to get a function signature by parsing the name
std::vector<volk_type_t> inputsig, outputsig;
get_signatures_from_name(inputsig, outputsig, name);
-
+
//pull the input scalars into their own vector
std::vector<volk_type_t> inputsc;
for(size_t i=0; i<inputsig.size(); i++) {