diff options
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 < 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++) { |