diff options
author | Tom Rondeau <trondeau@vt.edu> | 2013-02-20 17:33:05 -0500 |
---|---|---|
committer | Tom Rondeau <trondeau@vt.edu> | 2013-02-20 18:36:45 -0500 |
commit | 844a6e15b34d8106752bbf3783b3eb8b65728cac (patch) | |
tree | 9af8e62eac7668ce950c7c555d0299499b491880 | |
parent | 11746e7de98462a6d6a9917e0500077ed063a1d7 (diff) |
ctrlport: made display type in ControlPort setup field into an options mask.
Options are used to determine default plot type, type of plots available, initial states.
qtgui: fixed enabling stem plot to properly check the menu option.
-rw-r--r-- | gnuradio-core/src/lib/general/gr_ctrlport_probe2_c.cc | 3 | ||||
-rw-r--r-- | gnuradio-core/src/lib/general/gr_ctrlport_probe_c.cc | 3 | ||||
-rw-r--r-- | gnuradio-core/src/lib/general/gr_throttle.cc | 6 | ||||
-rw-r--r-- | gnuradio-core/src/lib/runtime/gnuradio.ice | 24 | ||||
-rw-r--r-- | gnuradio-core/src/lib/runtime/gr_block.cc | 30 | ||||
-rw-r--r-- | gnuradio-core/src/lib/runtime/nop_impl.cc | 8 | ||||
-rw-r--r-- | gnuradio-core/src/lib/runtime/rpccallbackregister_base.h | 27 | ||||
-rw-r--r-- | gnuradio-core/src/lib/runtime/rpcserver_ice.h | 4 | ||||
-rw-r--r-- | gnuradio-core/src/lib/runtime/runtime.i | 27 | ||||
-rw-r--r-- | gnuradio-core/src/python/gnuradio/ctrlport/GrDataPlotter.py | 12 | ||||
-rwxr-xr-x | gnuradio-core/src/python/gnuradio/ctrlport/gr-ctrlport-monitor | 78 | ||||
-rwxr-xr-x | gnuradio-core/src/python/gnuradio/ctrlport/qa_cpp_py_binding.py | 4 | ||||
-rw-r--r-- | gr-channels/lib/channel_model_impl.cc | 16 | ||||
-rw-r--r-- | gr-channels/lib/fading_model_impl.cc | 16 | ||||
-rw-r--r-- | gr-digital/lib/pfb_clock_sync_ccf_impl.cc | 12 | ||||
-rw-r--r-- | gr-qtgui/lib/timedisplayform.cc | 9 | ||||
-rw-r--r-- | gr-qtgui/lib/timedisplayform.h | 1 |
17 files changed, 171 insertions, 109 deletions
diff --git a/gnuradio-core/src/lib/general/gr_ctrlport_probe2_c.cc b/gnuradio-core/src/lib/general/gr_ctrlport_probe2_c.cc index 1b78a9cbc3..ca6667a214 100644 --- a/gnuradio-core/src/lib/general/gr_ctrlport_probe2_c.cc +++ b/gnuradio-core/src/lib/general/gr_ctrlport_probe2_c.cc @@ -138,7 +138,8 @@ gr_ctrlport_probe2_c::setup_rpc() pmt::make_c32vector(0,-2), pmt::make_c32vector(0,2), pmt::make_c32vector(0,0), - "volts", d_desc.c_str(), RPC_PRIVLVL_MIN, DISPXYSCATTER))); + "volts", d_desc.c_str(), RPC_PRIVLVL_MIN, + DISPXY | DISPOPTSCATTER))); d_rpc_vars.push_back( rpcbasic_sptr(new rpcbasic_register_get<gr_ctrlport_probe2_c, int>( diff --git a/gnuradio-core/src/lib/general/gr_ctrlport_probe_c.cc b/gnuradio-core/src/lib/general/gr_ctrlport_probe_c.cc index e06f27eb70..253d4c380e 100644 --- a/gnuradio-core/src/lib/general/gr_ctrlport_probe_c.cc +++ b/gnuradio-core/src/lib/general/gr_ctrlport_probe_c.cc @@ -90,6 +90,7 @@ gr_ctrlport_probe_c::setup_rpc() pmt::make_c32vector(0,-2), pmt::make_c32vector(0,2), pmt::make_c32vector(0,0), - "volts", d_desc.c_str(), RPC_PRIVLVL_MIN, DISPXYSCATTER))); + "volts", d_desc.c_str(), RPC_PRIVLVL_MIN, + DISPXY | DISPOPTSCATTER))); #endif /* GR_CTRLPORT */ } diff --git a/gnuradio-core/src/lib/general/gr_throttle.cc b/gnuradio-core/src/lib/general/gr_throttle.cc index d293e1c540..1c6c8cf893 100644 --- a/gnuradio-core/src/lib/general/gr_throttle.cc +++ b/gnuradio-core/src/lib/general/gr_throttle.cc @@ -89,12 +89,14 @@ private: rpcbasic_sptr(new rpcbasic_register_get<gr_throttle_impl, double>( alias(), "sample_rate", &gr_throttle_impl::sample_rate, pmt::mp(0.0), pmt::mp(100.0e6), pmt::mp(0.0), - "Hz", "Sample Rate", RPC_PRIVLVL_MIN, DISPSTRIPCHARTF))); + "Hz", "Sample Rate", RPC_PRIVLVL_MIN, + DISPTIME | DISPOPTSTRIP))); d_rpc_vars.push_back( rpcbasic_sptr(new rpcbasic_register_set<gr_throttle_impl, double>( alias(), "sample_rate", &gr_throttle_impl::set_sample_rate, pmt::mp(0.0), pmt::mp(100.0e6), pmt::mp(0.0), - "Hz", "Sample Rate", RPC_PRIVLVL_MIN, DISPSTRIPCHARTF))); + "Hz", "Sample Rate", RPC_PRIVLVL_MIN, + DISPTIME | DISPOPTSTRIP))); #endif } }; diff --git a/gnuradio-core/src/lib/runtime/gnuradio.ice b/gnuradio-core/src/lib/runtime/gnuradio.ice index 8fa909417e..e17d91901b 100644 --- a/gnuradio-core/src/lib/runtime/gnuradio.ice +++ b/gnuradio-core/src/lib/runtime/gnuradio.ice @@ -52,23 +52,23 @@ enum KnobType { KNOBBOOL, KNOBCHAR, KNOBINT, KNOBFLOAT, KNOBVECCHAR, KNOBVECINT, KNOBVECFLOAT, KNOBVECDOUBLE, KNOBVECSTRING, KNOBVECLONG }; -enum DisplayType { - DISPNULL, - DISPTIMESERIESF, - DISPTIMESERIESC, - DISPXYSCATTER, - DISPXYLINE, - DISPLOGTIMESERIESF, - DISPLOGTIMESERIESC, - DISPSTRIPCHARTF, - DISPSTRIPCHARTC, -}; +const int DISPNULL = 0x0000; +const int DISPTIME = 0x0001; +const int DISPXY = 0x0002; +const int DISPPSD = 0x0004; +const int DISPSPEC = 0x0008; +const int DISPRAST = 0x0010; +const int DISPOPTCPLX = 0x0100; +const int DISPOPTLOG = 0x0200; +const int DISPOPTSTEM = 0x0400; +const int DISPOPTSTRIP = 0x0800; +const int DISPOPTSCATTER = 0x1000; struct KnobProp { KnobType type; string units; string description; - DisplayType display; + int display; Knob min; Knob max; Knob defaultvalue; diff --git a/gnuradio-core/src/lib/runtime/gr_block.cc b/gnuradio-core/src/lib/runtime/gr_block.cc index fb39909ab8..ce92c88975 100644 --- a/gnuradio-core/src/lib/runtime/gr_block.cc +++ b/gnuradio-core/src/lib/runtime/gr_block.cc @@ -442,61 +442,71 @@ gr_block::setup_pc_rpc() rpcbasic_sptr(new rpcbasic_register_get<gr_block, float>( alias(), "avg noutput_items", &gr_block::pc_noutput_items, pmt::mp(0), pmt::mp(32768), pmt::mp(0), - "", "Average noutput items", RPC_PRIVLVL_MIN, DISPSTRIPCHARTF))); + "", "Average noutput items", RPC_PRIVLVL_MIN, + DISPTIME | DISPOPTSTRIP))); d_rpc_vars.push_back( rpcbasic_sptr(new rpcbasic_register_get<gr_block, float>( alias(), "var noutput_items", &gr_block::pc_noutput_items_var, pmt::mp(0), pmt::mp(32768), pmt::mp(0), - "", "Var. noutput items", RPC_PRIVLVL_MIN, DISPSTRIPCHARTF))); + "", "Var. noutput items", RPC_PRIVLVL_MIN, + DISPTIME | DISPOPTSTRIP))); d_rpc_vars.push_back( rpcbasic_sptr(new rpcbasic_register_get<gr_block, float>( alias(), "avg nproduced", &gr_block::pc_nproduced, pmt::mp(0), pmt::mp(32768), pmt::mp(0), - "", "Average items produced", RPC_PRIVLVL_MIN, DISPSTRIPCHARTF))); + "", "Average items produced", RPC_PRIVLVL_MIN, + DISPTIME | DISPOPTSTRIP))); d_rpc_vars.push_back( rpcbasic_sptr(new rpcbasic_register_get<gr_block, float>( alias(), "var nproduced", &gr_block::pc_nproduced_var, pmt::mp(0), pmt::mp(32768), pmt::mp(0), - "", "Var. items produced", RPC_PRIVLVL_MIN, DISPSTRIPCHARTF))); + "", "Var. items produced", RPC_PRIVLVL_MIN, + DISPTIME | DISPOPTSTRIP))); d_rpc_vars.push_back( rpcbasic_sptr(new rpcbasic_register_get<gr_block, float>( alias(), "avg work time", &gr_block::pc_work_time, pmt::mp(0), pmt::mp(1e9), pmt::mp(0), - "", "Average clock cycles in call to work", RPC_PRIVLVL_MIN, DISPSTRIPCHARTF))); + "", "Average clock cycles in call to work", RPC_PRIVLVL_MIN, + DISPTIME | DISPOPTSTRIP))); d_rpc_vars.push_back( rpcbasic_sptr(new rpcbasic_register_get<gr_block, float>( alias(), "var work time", &gr_block::pc_work_time_var, pmt::mp(0), pmt::mp(1e9), pmt::mp(0), - "", "Var. clock cycles in call to work", RPC_PRIVLVL_MIN, DISPSTRIPCHARTF))); + "", "Var. clock cycles in call to work", RPC_PRIVLVL_MIN, + DISPTIME | DISPOPTSTRIP))); d_rpc_vars.push_back( rpcbasic_sptr(new rpcbasic_register_get<gr_block, std::vector<float> >( alias(), "avg input \% full", &gr_block::pc_input_buffers_full, pmt::make_c32vector(0,0), pmt::make_c32vector(0,1), pmt::make_c32vector(0,0), - "", "Average of how full input buffers are", RPC_PRIVLVL_MIN, DISPSTRIPCHARTF))); + "", "Average of how full input buffers are", RPC_PRIVLVL_MIN, + DISPTIME | DISPOPTSTRIP))); d_rpc_vars.push_back( rpcbasic_sptr(new rpcbasic_register_get<gr_block, std::vector<float> >( alias(), "var input \% full", &gr_block::pc_input_buffers_full_var, pmt::make_c32vector(0,0), pmt::make_c32vector(0,1), pmt::make_c32vector(0,0), - "", "Var. of how full input buffers are", RPC_PRIVLVL_MIN, DISPSTRIPCHARTF))); + "", "Var. of how full input buffers are", RPC_PRIVLVL_MIN, + DISPTIME | DISPOPTSTRIP))); d_rpc_vars.push_back( rpcbasic_sptr(new rpcbasic_register_get<gr_block, std::vector<float> >( alias(), "avg output \% full", &gr_block::pc_output_buffers_full, pmt::make_c32vector(0,0), pmt::make_c32vector(0,1), pmt::make_c32vector(0,0), - "", "Average of how full output buffers are", RPC_PRIVLVL_MIN, DISPSTRIPCHARTF))); + "", "Average of how full output buffers are", RPC_PRIVLVL_MIN, + DISPTIME | DISPOPTSTRIP))); d_rpc_vars.push_back( rpcbasic_sptr(new rpcbasic_register_get<gr_block, std::vector<float> >( alias(), "var output \% full", &gr_block::pc_output_buffers_full_var, pmt::make_c32vector(0,0), pmt::make_c32vector(0,1), pmt::make_c32vector(0,0), - "", "Var. of how full output buffers are", RPC_PRIVLVL_MIN, DISPSTRIPCHARTF))); + "", "Var. of how full output buffers are", RPC_PRIVLVL_MIN, + DISPTIME | DISPOPTSTRIP))); #endif /* GR_CTRLPORT */ } diff --git a/gnuradio-core/src/lib/runtime/nop_impl.cc b/gnuradio-core/src/lib/runtime/nop_impl.cc index 6df2c0391d..def1740678 100644 --- a/gnuradio-core/src/lib/runtime/nop_impl.cc +++ b/gnuradio-core/src/lib/runtime/nop_impl.cc @@ -90,15 +90,15 @@ namespace gr { (new get_32i_t(d_name, "a", this, unique_id(), &nop_impl::a, pmt::mp(-128), pmt::mp(127), pmt::mp(0), - "", "Value of a", - RPC_PRIVLVL_MIN, DISPSTRIPCHARTF))); + "", "Value of a", RPC_PRIVLVL_MIN, + DISPTIME | DISPOPTSTRIP))); d_get_32i_rpcs.push_back(get_32i_sptr (new get_32i_t(d_name, "b", this, unique_id(), &nop_impl::b, pmt::mp(-128), pmt::mp(127), pmt::mp(0), - "", "Value of b", - RPC_PRIVLVL_MIN, DISPSTRIPCHARTF))); + "", "Value of b", RPC_PRIVLVL_MIN, + DISPTIME | DISPOPTSTRIP))); d_set_32i_rpcs.push_back(set_32i_sptr (new set_32i_t(d_name, "a", this, unique_id(), diff --git a/gnuradio-core/src/lib/runtime/rpccallbackregister_base.h b/gnuradio-core/src/lib/runtime/rpccallbackregister_base.h index a9a3925d94..dbfda4ed47 100644 --- a/gnuradio-core/src/lib/runtime/rpccallbackregister_base.h +++ b/gnuradio-core/src/lib/runtime/rpccallbackregister_base.h @@ -26,17 +26,22 @@ #include <gruel/msg_accepter.h> #include <gruel/msg_producer.h> -enum DisplayType { - DISPNULL, - DISPTIMESERIESF, - DISPTIMESERIESC, - DISPXYSCATTER, - DISPXYLINE, - DISPLOGTIMESERIESF, - DISPLOGTIMESERIESC, - DISPSTRIPCHARTF, - DISPSTRIPCHARTC, -}; +typedef uint32_t DisplayType; + +// DisplayType Plotting types +const uint32_t DISPNULL = 0x0000; +const uint32_t DISPTIME = 0x0001; +const uint32_t DISPXY = 0x0002; +const uint32_t DISPPSD = 0x0004; +const uint32_t DISPSPEC = 0x0008; +const uint32_t DISPRAST = 0x0010; + +// DisplayType Options +const uint32_t DISPOPTCPLX = 0x0100; +const uint32_t DISPOPTLOG = 0x0200; +const uint32_t DISPOPTSTEM = 0x0400; +const uint32_t DISPOPTSTRIP = 0x0800; +const uint32_t DISPOPTSCATTER = 0x1000; enum priv_lvl_t { RPC_PRIVLVL_ALL = 0, diff --git a/gnuradio-core/src/lib/runtime/rpcserver_ice.h b/gnuradio-core/src/lib/runtime/rpcserver_ice.h index 98847bbe05..66ed8d5156 100644 --- a/gnuradio-core/src/lib/runtime/rpcserver_ice.h +++ b/gnuradio-core/src/lib/runtime/rpcserver_ice.h @@ -162,7 +162,7 @@ private: prop.description = p.second.description; prop.min = rpcpmtconverter::from_pmt(p.second.min, c); prop.max = rpcpmtconverter::from_pmt(p.second.max, c); - prop.display = static_cast<GNURadio::DisplayType>(p.second.display); + prop.display = static_cast<uint32_t>(p.second.display); outknobs[p.first] = prop; } else { @@ -197,7 +197,7 @@ private: prop.description = iter->second.description; prop.min = rpcpmtconverter::from_pmt(iter->second.min, c); prop.max = rpcpmtconverter::from_pmt(iter->second.max, c); - prop.display = static_cast<GNURadio::DisplayType>(iter->second.display); + prop.display = static_cast<uint32_t>(iter->second.display); //outknobs[iter->first] = prop; outknobs[p] = prop; } diff --git a/gnuradio-core/src/lib/runtime/runtime.i b/gnuradio-core/src/lib/runtime/runtime.i index ea6b7f79ac..c3510a65e2 100644 --- a/gnuradio-core/src/lib/runtime/runtime.i +++ b/gnuradio-core/src/lib/runtime/runtime.i @@ -71,17 +71,22 @@ #ifdef GR_CTRLPORT -enum DisplayType { - DISPNULL, - DISPTIMESERIESF, - DISPTIMESERIESC, - DISPXYSCATTER, - DISPXYLINE, - DISPLOGTIMESERIESF, - DISPLOGTIMESERIESC, - DISPSTRIPCHARTF, - DISPSTRIPCHARTC, -}; +typedef uint32_t DisplayType; + +// DisplayType Plotting types +const uint32_t DISPNULL = 0x0000; +const uint32_t DISPTIME = 0x0001; +const uint32_t DISPXY = 0x0002; +const uint32_t DISPPSD = 0x0004; +const uint32_t DISPSPEC = 0x0008; +const uint32_t DISPRAST = 0x0010; + +// DisplayType Options +const uint32_t DISPOPTCPLX = 0x0100; +const uint32_t DISPOPTLOG = 0x0200; +const uint32_t DISPOPTSTEM = 0x0400; +const uint32_t DISPOPTSTRIP = 0x0800; +const uint32_t DISPOPTSCATTER = 0x1000; enum priv_lvl_t { RPC_PRIVLVL_ALL = 0, diff --git a/gnuradio-core/src/python/gnuradio/ctrlport/GrDataPlotter.py b/gnuradio-core/src/python/gnuradio/ctrlport/GrDataPlotter.py index 1990e21aa4..27858b575b 100644 --- a/gnuradio-core/src/python/gnuradio/ctrlport/GrDataPlotter.py +++ b/gnuradio-core/src/python/gnuradio/ctrlport/GrDataPlotter.py @@ -68,6 +68,9 @@ class GrDataPlotterC(gr.top_block): def semilogy(self, en=True): self.snk.enable_semilogy(en) + def stem(self, en=True): + self.snk.enable_stem_plot(en) + def update(self, data): # Ask GUI if there has been a change in nsamps npts = self.snk.nsamps() @@ -147,6 +150,9 @@ class GrDataPlotterF(gr.top_block): def semilogy(self, en=True): self.snk.enable_semilogy(en) + def stem(self, en=True): + self.snk.enable_stem_plot(en) + def update(self, data): # Ask GUI if there has been a change in nsamps npts = self.snk.nsamps() @@ -219,6 +225,12 @@ class GrDataPlotterConst(gr.top_block): def name(self): return self._name + def scatter(self, en=True): + if(en): + self.snk.set_line_style(0, 0) + else: + self.snk.set_line_style(0, 1) + def update(self, data): # Ask GUI if there has been a change in nsamps npts = self.snk.nsamps() diff --git a/gnuradio-core/src/python/gnuradio/ctrlport/gr-ctrlport-monitor b/gnuradio-core/src/python/gnuradio/ctrlport/gr-ctrlport-monitor index 4625a2d863..60a810b04e 100755 --- a/gnuradio-core/src/python/gnuradio/ctrlport/gr-ctrlport-monitor +++ b/gnuradio-core/src/python/gnuradio/ctrlport/gr-ctrlport-monitor @@ -115,17 +115,28 @@ class MAINWindow(QtGui.QMainWindow): else: pmax = 1.1*pmax + # Use display option mask of item to set up available plot + # types and default options. + disp = self.knobprops[uid][key].display + cplx = disp & gr.DISPOPTCPLX | disp & gr.DISPXY + strip = disp & gr.DISPOPTSTRIP + stem = disp & gr.DISPOPTSTEM + log = disp & gr.DISPOPTLOG + scatter = disp & gr.DISPOPTSCATTER + def newUpdaterProxy(): self.newUpdater(key, radio) def newPlotterFProxy(): - self.newPlotF(key, uid, title, pmin, pmax) + self.newPlotF(key, uid, title, pmin, pmax, + log, strip, stem) def newPlotterCProxy(): - self.newPlotC(key, uid, title, pmin, pmax) + self.newPlotC(key, uid, title, pmin, pmax, + log, strip, stem) def newPlotterConstProxy(): - self.newPlotConst(key, uid, title, pmin, pmax) + self.newPlotConst(key, uid, title, pmin, pmax, scatter) def newPlotterPsdFProxy(): self.newPlotPsdF(key, uid, title) @@ -147,13 +158,15 @@ class MAINWindow(QtGui.QMainWindow): menu.addAction("Properties", newUpdaterProxy) # displays available - menu.addAction("Plot Time", newPlotterFProxy) - menu.addAction("Plot Time (cpx)", newPlotterCProxy) - menu.addAction("Plot PSD", newPlotterPsdFProxy) - menu.addAction("Plot PSD cpx", newPlotterPsdCProxy) - menu.addAction("Plot Constellation", newPlotterConstProxy) - menu.addAction("Plot Raster (real)", newPlotterRasterFProxy) - #menu.addAction("Plot Raster (bits)", newPlotterRasterBProxy) + if(cplx == 0): + menu.addAction("Plot Time", newPlotterFProxy) + menu.addAction("Plot PSD", newPlotterPsdFProxy) + menu.addAction("Plot Raster (real)", newPlotterRasterFProxy) + #menu.addAction("Plot Raster (bits)", newPlotterRasterBProxy) + else: + menu.addAction("Plot Time", newPlotterCProxy) + menu.addAction("Plot PSD", newPlotterPsdCProxy) + menu.addAction("Plot Constellation", newPlotterConstProxy) menu.popup(QtGui.QCursor.pos()) @@ -182,20 +195,27 @@ class MAINWindow(QtGui.QMainWindow): else: pmax = 1.1*pmax - if(knobprop.display == GNURadio.DisplayType.DISPXYSCATTER): - self.newPlotConst(tag, uid, title, pmin, pmax) - elif(knobprop.display == GNURadio.DisplayType.DISPTIMESERIESF): - self.newPlotF(tag, uid, title, pmin, pmax) - elif(knobprop.display == GNURadio.DisplayType.DISPTIMESERIESC): - self.newPlotC(tag, uid, title, pmin, pmax) - elif(knobprop.display == GNURadio.DisplayType.DISPLOGTIMESERIESF): - self.newPlotF(tag, uid, title, pmin, pmax, True) - elif(knobprop.display == GNURadio.DisplayType.DISPLOGTIMESERIESC): - self.newPlotC(tag, uid, title, pmin, pmax, True) - elif(knobprop.display == GNURadio.DisplayType.DISPSTRIPCHARTF): - self.newPlotC(tag, uid, title, pmin, pmax, False, True) - elif(knobprop.display == GNURadio.DisplayType.DISPSTRIPCHARTC): - self.newPlotC(tag, uid, title, pmin, pmax, False, True) + disp = knobprop.display + if(disp & gr.DISPTIME): + strip = disp & gr.DISPOPTSTRIP + stem = disp & gr.DISPOPTSTEM + log = disp & gr.DISPOPTLOG + if(disp & gr.DISPOPTCPLX == 0): + self.newPlotF(tag, uid, title, pmin, pmax, + log, strip, stem) + else: + self.newPlotC(tag, uid, title, pmin, pmax, + log, strip, stem) + + elif(disp & gr.DISPXY): + scatter = disp & gr.DISPOPTSCATTER + self.newPlotConst(tag, uid, title, pmin, pmax, scatter) + + elif(disp & gr.DISPPSD): + if(disp & gr.DISPOPTCPLX == 0): + self.newPlotPsdF(tag, uid, title) + else: + self.newPlotPsdC(tag, uid, title) def createPlot(self, plot, uid, title): plot.start() @@ -216,20 +236,24 @@ class MAINWindow(QtGui.QMainWindow): plots.remove(p) break - def newPlotConst(self, tag, uid, title="", pmin=None, pmax=None): + def newPlotConst(self, tag, uid, title="", pmin=None, pmax=None, + scatter=False): plot = GrDataPlotterConst(tag, 32e6, pmin, pmax) + plot.scatter(scatter) self.createPlot(plot, uid, title) def newPlotF(self, tag, uid, title="", pmin=None, pmax=None, - logy=False, stripchart=False): + logy=False, stripchart=False, stem=False): plot = GrDataPlotterF(tag, 32e6, pmin, pmax, stripchart) plot.semilogy(logy) + plot.stem(stem) self.createPlot(plot, uid, title) def newPlotC(self, tag, uid, title="", pmin=None, pmax=None, - logy=False, stripchart=False): + logy=False, stripchart=False, stem=False): plot = GrDataPlotterC(tag, 32e6, pmin, pmax, stripchart) plot.semilogy(logy) + plot.stem(stem) self.createPlot(plot, uid, title) def newPlotPsdF(self, tag, uid, title="", pmin=None, pmax=None): diff --git a/gnuradio-core/src/python/gnuradio/ctrlport/qa_cpp_py_binding.py b/gnuradio-core/src/python/gnuradio/ctrlport/qa_cpp_py_binding.py index a8b6de8c53..6de5d5fc9f 100755 --- a/gnuradio-core/src/python/gnuradio/ctrlport/qa_cpp_py_binding.py +++ b/gnuradio-core/src/python/gnuradio/ctrlport/qa_cpp_py_binding.py @@ -98,12 +98,12 @@ class test_cpp_py_binding(gr_unittest.TestCase): v5 = gr.RPC_get_vector_float("pyland", "fvec", "unit_5_float_vector", "Python Exported Float Vector", [], [], [], - gr.DISPTIMESERIESC) + gr.DISPTIME | gr.DISPOPTCPLX) v5.activate(get5) v6 = gr.RPC_get_vector_gr_complex("pyland", "cvec", "unit_6_gr_complex_vector", "Python Exported Complex Vector", [], [], [], - gr.DISPXYSCATTER) + gr.DISPXY | gr.DISPOPTSCATTER) v6.activate(get6) # print some variables locally diff --git a/gr-channels/lib/channel_model_impl.cc b/gr-channels/lib/channel_model_impl.cc index 642986cccd..aafab12f37 100644 --- a/gr-channels/lib/channel_model_impl.cc +++ b/gr-channels/lib/channel_model_impl.cc @@ -142,24 +142,24 @@ namespace gr { alias(), "noise", &channel_model::noise_voltage, pmt::mp(-10.0f), pmt::mp(10.0f), pmt::mp(0.0f), - "", "Noise Voltage", - RPC_PRIVLVL_MIN, DISPSTRIPCHARTF))); + "", "Noise Voltage", RPC_PRIVLVL_MIN, + DISPTIME | DISPOPTSTRIP))); add_rpc_variable( rpcbasic_sptr(new rpcbasic_register_get<channel_model, double>( alias(), "freq", &channel_model::frequency_offset, pmt::mp(-1.0f), pmt::mp(1.0f), pmt::mp(0.0f), - "Hz", "Frequency Offset", - RPC_PRIVLVL_MIN, DISPSTRIPCHARTF))); + "Hz", "Frequency Offset", RPC_PRIVLVL_MIN, + DISPTIME | DISPOPTSTRIP))); add_rpc_variable( rpcbasic_sptr(new rpcbasic_register_get<channel_model, double>( alias(), "timing", &channel_model::timing_offset, pmt::mp(0.0), pmt::mp(2.0), pmt::mp(0.0), - "", "Timing Offset", - RPC_PRIVLVL_MIN, DISPSTRIPCHARTF))); + "", "Timing Offset", RPC_PRIVLVL_MIN, + DISPTIME | DISPOPTSTRIP))); add_rpc_variable( rpcbasic_sptr(new rpcbasic_register_get<channel_model, std::vector<gr_complex> >( @@ -168,8 +168,8 @@ namespace gr { pmt::make_c32vector(0,-10), pmt::make_c32vector(0,10), pmt::make_c32vector(0,0), - "", "Multipath taps", - RPC_PRIVLVL_MIN, DISPSTRIPCHARTC))); + "", "Multipath taps", RPC_PRIVLVL_MIN, + DISPTIME | DISPOPTCPLX | DISPOPTSTRIP))); add_rpc_variable( rpcbasic_sptr(new rpcbasic_register_set<channel_model, double>( diff --git a/gr-channels/lib/fading_model_impl.cc b/gr-channels/lib/fading_model_impl.cc index 2e329f5174..080a3b8e06 100644 --- a/gr-channels/lib/fading_model_impl.cc +++ b/gr-channels/lib/fading_model_impl.cc @@ -97,14 +97,14 @@ namespace gr { &fading_model::fDTs, pmt::mp(0), pmt::mp(1), pmt::mp(0.01), "Hz*Sec", "normalized maximum doppler frequency (fD*Ts)", - RPC_PRIVLVL_MIN, DISPSTRIPCHARTF))); + RPC_PRIVLVL_MIN, DISPTIME | DISPOPTSTRIP))); add_rpc_variable( rpcbasic_sptr(new rpcbasic_register_set<fading_model, float >( alias(), "fDTs", &fading_model::set_fDTs, pmt::mp(0), pmt::mp(1), pmt::mp(0.01), "Hz*Sec", "normalized maximum doppler frequency (fD*Ts)", - RPC_PRIVLVL_MIN, DISPSTRIPCHARTF))); + RPC_PRIVLVL_MIN, DISPTIME | DISPOPTSTRIP))); add_rpc_variable( rpcbasic_sptr(new rpcbasic_register_get<fading_model, float >( @@ -112,14 +112,14 @@ namespace gr { &fading_model::K, pmt::mp(0), pmt::mp(8), pmt::mp(4), "Ratio", "Rician factor (ratio of the specular power to the scattered power)", - RPC_PRIVLVL_MIN, DISPSTRIPCHARTF))); + RPC_PRIVLVL_MIN, DISPTIME | DISPOPTSTRIP))); add_rpc_variable( rpcbasic_sptr(new rpcbasic_register_set<fading_model, float >( alias(), "K", &fading_model::set_K, pmt::mp(0), pmt::mp(8), pmt::mp(4), "Ratio", "Rician factor (ratio of the specular power to the scattered power)", - RPC_PRIVLVL_MIN, DISPSTRIPCHARTF))); + RPC_PRIVLVL_MIN, DISPTIME | DISPOPTSTRIP))); add_rpc_variable( rpcbasic_sptr(new rpcbasic_register_get<fading_model, float >( @@ -127,14 +127,14 @@ namespace gr { &fading_model::step, pmt::mp(0), pmt::mp(8), pmt::mp(4), "radians", "Maximum step size for random walk angle per sample", - RPC_PRIVLVL_MIN, DISPSTRIPCHARTF))); + RPC_PRIVLVL_MIN, DISPTIME | DISPOPTSTRIP))); add_rpc_variable( rpcbasic_sptr(new rpcbasic_register_set<fading_model, float >( alias(), "step", &fading_model::set_step, pmt::mp(0), pmt::mp(1), pmt::mp(0.00001), "radians", "Maximum step size for random walk angle per sample", - RPC_PRIVLVL_MIN, DISPSTRIPCHARTF))); + RPC_PRIVLVL_MIN, DISPTIME | DISPOPTSTRIP))); add_rpc_variable( rpcbasic_sptr(new rpcbasic_register_get<fading_model, float >( @@ -142,14 +142,14 @@ namespace gr { &fading_model::step, pmt::mp(0), pmt::mp(8), pmt::mp(4), "radians", "Maximum step size for random walk angle per sample", - RPC_PRIVLVL_MIN, DISPSTRIPCHARTF))); + RPC_PRIVLVL_MIN, DISPTIME | DISPOPTSTRIP))); add_rpc_variable( rpcbasic_sptr(new rpcbasic_register_set<fading_model, float >( alias(), "step", &fading_model::set_step, pmt::mp(0), pmt::mp(1), pmt::mp(0.00001), "radians", "Maximum step size for random walk angle per sample", - RPC_PRIVLVL_MIN, DISPSTRIPCHARTF))); + RPC_PRIVLVL_MIN, DISPTIME | DISPOPTSTRIP))); #endif /* GR_CTRLPORT */ } diff --git a/gr-digital/lib/pfb_clock_sync_ccf_impl.cc b/gr-digital/lib/pfb_clock_sync_ccf_impl.cc index 58f41a466f..3c4a0e8ad4 100644 --- a/gr-digital/lib/pfb_clock_sync_ccf_impl.cc +++ b/gr-digital/lib/pfb_clock_sync_ccf_impl.cc @@ -463,24 +463,24 @@ namespace gr { alias(), "error", &pfb_clock_sync_ccf::error, pmt::mp(-2.0f), pmt::mp(2.0f), pmt::mp(0.0f), - "", "Error signal of loop", - RPC_PRIVLVL_MIN, DISPSTRIPCHARTF))); + "", "Error signal of loop", RPC_PRIVLVL_MIN, + DISPTIME | DISPOPTSTRIP))); add_rpc_variable( rpcbasic_sptr(new rpcbasic_register_get<pfb_clock_sync_ccf, float>( alias(), "rate", &pfb_clock_sync_ccf::rate, pmt::mp(-2.0f), pmt::mp(2.0f), pmt::mp(0.0f), - "", "Rate change of phase", - RPC_PRIVLVL_MIN, DISPSTRIPCHARTF))); + "", "Rate change of phase", RPC_PRIVLVL_MIN, + DISPTIME | DISPOPTSTRIP))); add_rpc_variable( rpcbasic_sptr(new rpcbasic_register_get<pfb_clock_sync_ccf, float>( alias(), "phase", &pfb_clock_sync_ccf::phase, pmt::mp(0), pmt::mp((int)d_nfilters), pmt::mp(0), - "", "Current filter phase arm", - RPC_PRIVLVL_MIN, DISPSTRIPCHARTF))); + "", "Current filter phase arm", RPC_PRIVLVL_MIN, + DISPTIME | DISPOPTSTRIP))); add_rpc_variable( rpcbasic_sptr(new rpcbasic_register_get<pfb_clock_sync_ccf, float>( diff --git a/gr-qtgui/lib/timedisplayform.cc b/gr-qtgui/lib/timedisplayform.cc index aaaf19518a..5e1fbfb570 100644 --- a/gr-qtgui/lib/timedisplayform.cc +++ b/gr-qtgui/lib/timedisplayform.cc @@ -45,10 +45,10 @@ TimeDisplayForm::TimeDisplayForm(int nplots, QWidget* parent) connect(nptsmenu, SIGNAL(whichTrigger(int)), this, SLOT(setNPoints(const int))); - QAction *stemmenu = new QAction("Stem Plot", this); - stemmenu->setCheckable(true); - _menu->addAction(stemmenu); - connect(stemmenu, SIGNAL(triggered(bool)), + d_stemmenu = new QAction("Stem Plot", this); + d_stemmenu->setCheckable(true); + _menu->addAction(d_stemmenu); + connect(d_stemmenu, SIGNAL(triggered(bool)), this, SLOT(setStem(bool))); d_semilogxmenu = new QAction("Semilog X", this); @@ -148,6 +148,7 @@ void TimeDisplayForm::setStem(bool en) { d_stem = en; + d_stemmenu->setChecked(en); getPlot()->stemPlot(d_stem); getPlot()->replot(); } diff --git a/gr-qtgui/lib/timedisplayform.h b/gr-qtgui/lib/timedisplayform.h index 082c66c31a..4bc99f622d 100644 --- a/gr-qtgui/lib/timedisplayform.h +++ b/gr-qtgui/lib/timedisplayform.h @@ -69,6 +69,7 @@ private: bool d_semilogx; bool d_semilogy; + QAction *d_stemmenu; QAction *d_semilogxmenu; QAction *d_semilogymenu; }; |