summaryrefslogtreecommitdiff
path: root/gr-qtgui
diff options
context:
space:
mode:
Diffstat (limited to 'gr-qtgui')
-rwxr-xr-xgr-qtgui/apps/gr_constellation_plot2
-rwxr-xr-xgr-qtgui/apps/gr_psd_plot_b2
-rwxr-xr-xgr-qtgui/apps/gr_psd_plot_c2
-rwxr-xr-xgr-qtgui/apps/gr_psd_plot_f2
-rwxr-xr-xgr-qtgui/apps/gr_psd_plot_i2
-rwxr-xr-xgr-qtgui/apps/gr_psd_plot_s2
-rwxr-xr-xgr-qtgui/apps/gr_time_plot_b2
-rwxr-xr-xgr-qtgui/apps/gr_time_plot_c4
-rwxr-xr-xgr-qtgui/apps/gr_time_plot_f2
-rwxr-xr-xgr-qtgui/apps/gr_time_plot_i2
-rwxr-xr-xgr-qtgui/apps/gr_time_plot_s2
-rw-r--r--gr-qtgui/apps/grc_qt_example.grc182
-rw-r--r--gr-qtgui/apps/plot_form.py51
-rwxr-xr-xgr-qtgui/examples/pyqt_const_c.py14
-rwxr-xr-xgr-qtgui/examples/pyqt_example_c.py16
-rwxr-xr-xgr-qtgui/examples/pyqt_example_f.py16
-rwxr-xr-xgr-qtgui/examples/pyqt_freq_c.py14
-rwxr-xr-xgr-qtgui/examples/pyqt_freq_f.py15
-rwxr-xr-xgr-qtgui/examples/pyqt_time_c.py30
-rwxr-xr-xgr-qtgui/examples/pyqt_time_f.py26
-rwxr-xr-xgr-qtgui/examples/pyqt_waterfall_c.py14
-rwxr-xr-xgr-qtgui/examples/pyqt_waterfall_f.py14
-rw-r--r--gr-qtgui/grc/qtgui_const_sink_x.xml30
-rw-r--r--gr-qtgui/grc/qtgui_freq_sink_x.xml15
-rw-r--r--gr-qtgui/grc/qtgui_time_sink_x.xml23
-rw-r--r--gr-qtgui/include/qtgui/const_sink_c.h11
-rw-r--r--gr-qtgui/include/qtgui/freq_sink_c.h9
-rw-r--r--gr-qtgui/include/qtgui/freq_sink_f.h9
-rw-r--r--gr-qtgui/include/qtgui/time_sink_c.h15
-rw-r--r--gr-qtgui/include/qtgui/time_sink_f.h15
-rw-r--r--gr-qtgui/include/qtgui/waterfall_sink_c.h3
-rw-r--r--gr-qtgui/include/qtgui/waterfall_sink_f.h3
-rw-r--r--gr-qtgui/lib/ConstellationDisplayPlot.cc21
-rw-r--r--gr-qtgui/lib/DisplayPlot.cc12
-rw-r--r--gr-qtgui/lib/DisplayPlot.h8
-rw-r--r--gr-qtgui/lib/FrequencyDisplayPlot.cc2
-rw-r--r--gr-qtgui/lib/FrequencyDisplayPlot.h2
-rw-r--r--gr-qtgui/lib/const_sink_c_impl.cc50
-rw-r--r--gr-qtgui/lib/const_sink_c_impl.h11
-rw-r--r--gr-qtgui/lib/constellationdisplayform.cc18
-rw-r--r--gr-qtgui/lib/constellationdisplayform.h7
-rw-r--r--gr-qtgui/lib/displayform.cc65
-rw-r--r--gr-qtgui/lib/displayform.h9
-rw-r--r--gr-qtgui/lib/freq_sink_c_impl.cc42
-rw-r--r--gr-qtgui/lib/freq_sink_c_impl.h9
-rw-r--r--gr-qtgui/lib/freq_sink_f_impl.cc42
-rw-r--r--gr-qtgui/lib/freq_sink_f_impl.h9
-rw-r--r--gr-qtgui/lib/freqdisplayform.cc24
-rw-r--r--gr-qtgui/lib/freqdisplayform.h16
-rw-r--r--gr-qtgui/lib/spectrumdisplayform.cc6
-rw-r--r--gr-qtgui/lib/time_sink_c_impl.cc53
-rw-r--r--gr-qtgui/lib/time_sink_c_impl.h16
-rw-r--r--gr-qtgui/lib/time_sink_f_impl.cc53
-rw-r--r--gr-qtgui/lib/time_sink_f_impl.h16
-rw-r--r--gr-qtgui/lib/timedisplayform.cc27
-rw-r--r--gr-qtgui/lib/timedisplayform.h10
-rw-r--r--gr-qtgui/lib/waterfall_sink_c_impl.cc12
-rw-r--r--gr-qtgui/lib/waterfall_sink_c_impl.h3
-rw-r--r--gr-qtgui/lib/waterfall_sink_f_impl.cc12
-rw-r--r--gr-qtgui/lib/waterfall_sink_f_impl.h3
-rw-r--r--gr-qtgui/python/CMakeLists.txt2
61 files changed, 759 insertions, 350 deletions
diff --git a/gr-qtgui/apps/gr_constellation_plot b/gr-qtgui/apps/gr_constellation_plot
index 66d227ecc9..02805a8fd1 100755
--- a/gr-qtgui/apps/gr_constellation_plot
+++ b/gr-qtgui/apps/gr_constellation_plot
@@ -86,7 +86,7 @@ class my_top_block(gr.top_block):
# Set default labels based on file names
fname = f.split("/")[-1]
- self.gui_snk.set_title(n, "{0}".format(fname))
+ self.gui_snk.set_line_label(n, "{0}".format(fname))
n += 1
self.connect(self.srcs[0], self.skip)
diff --git a/gr-qtgui/apps/gr_psd_plot_b b/gr-qtgui/apps/gr_psd_plot_b
index e3e86a271f..283bf2950c 100755
--- a/gr-qtgui/apps/gr_psd_plot_b
+++ b/gr-qtgui/apps/gr_psd_plot_b
@@ -95,7 +95,7 @@ class my_top_block(gr.top_block):
# Set default labels based on file names
fname = f.split("/")[-1]
- self.gui_snk.set_title(n, "{0}".format(fname))
+ self.gui_snk.set_line_label(n, "{0}".format(fname))
n += 1
self.connect(self.srcs[0], self.cnvrt[0], self.skip)
diff --git a/gr-qtgui/apps/gr_psd_plot_c b/gr-qtgui/apps/gr_psd_plot_c
index faa0fc60a4..0f7f4b9bef 100755
--- a/gr-qtgui/apps/gr_psd_plot_c
+++ b/gr-qtgui/apps/gr_psd_plot_c
@@ -92,7 +92,7 @@ class my_top_block(gr.top_block):
# Set default labels based on file names
fname = f.split("/")[-1]
- self.gui_snk.set_title(n, "{0}".format(fname))
+ self.gui_snk.set_line_label(n, "{0}".format(fname))
n += 1
self.connect(self.srcs[0], self.skip)
diff --git a/gr-qtgui/apps/gr_psd_plot_f b/gr-qtgui/apps/gr_psd_plot_f
index 326618f848..973f7b29d9 100755
--- a/gr-qtgui/apps/gr_psd_plot_f
+++ b/gr-qtgui/apps/gr_psd_plot_f
@@ -92,7 +92,7 @@ class my_top_block(gr.top_block):
# Set default labels based on file names
fname = f.split("/")[-1]
- self.gui_snk.set_title(n, "{0}".format(fname))
+ self.gui_snk.set_line_label(n, "{0}".format(fname))
n += 1
self.connect(self.srcs[0], self.skip)
diff --git a/gr-qtgui/apps/gr_psd_plot_i b/gr-qtgui/apps/gr_psd_plot_i
index a0264ac1c9..022f4ee755 100755
--- a/gr-qtgui/apps/gr_psd_plot_i
+++ b/gr-qtgui/apps/gr_psd_plot_i
@@ -95,7 +95,7 @@ class my_top_block(gr.top_block):
# Set default labels based on file names
fname = f.split("/")[-1]
- self.gui_snk.set_title(n, "{0}".format(fname))
+ self.gui_snk.set_line_label(n, "{0}".format(fname))
n += 1
self.connect(self.srcs[0], self.cnvrt[0], self.skip)
diff --git a/gr-qtgui/apps/gr_psd_plot_s b/gr-qtgui/apps/gr_psd_plot_s
index 6852cf7d0f..905d8fde60 100755
--- a/gr-qtgui/apps/gr_psd_plot_s
+++ b/gr-qtgui/apps/gr_psd_plot_s
@@ -95,7 +95,7 @@ class my_top_block(gr.top_block):
# Set default labels based on file names
fname = f.split("/")[-1]
- self.gui_snk.set_title(n, "{0}".format(fname))
+ self.gui_snk.set_line_label(n, "{0}".format(fname))
n += 1
self.connect(self.srcs[0], self.cnvrt[0], self.skip)
diff --git a/gr-qtgui/apps/gr_time_plot_b b/gr-qtgui/apps/gr_time_plot_b
index 90043c91f6..3ac583eef3 100755
--- a/gr-qtgui/apps/gr_time_plot_b
+++ b/gr-qtgui/apps/gr_time_plot_b
@@ -89,7 +89,7 @@ class gr_time_plot_f(gr.top_block):
# Set default labels based on file names
fname = f.split("/")[-1]
- self.gui_snk.set_title(n, "{0}".format(fname))
+ self.gui_snk.set_line_label(n, "{0}".format(fname))
n += 1
self.connect(self.srcs[0], self.cnvrt[0], self.skip)
diff --git a/gr-qtgui/apps/gr_time_plot_c b/gr-qtgui/apps/gr_time_plot_c
index 858bbce240..2f27623e54 100755
--- a/gr-qtgui/apps/gr_time_plot_c
+++ b/gr-qtgui/apps/gr_time_plot_c
@@ -86,8 +86,8 @@ class my_top_block(gr.top_block):
# Set default labels based on file names
fname = f.split("/")[-1]
- self.gui_snk.set_title(n, "Re{{{0}}}".format(fname))
- self.gui_snk.set_title(n+1, "Im{{{0}}}".format(fname))
+ self.gui_snk.set_line_label(n, "Re{{{0}}}".format(fname))
+ self.gui_snk.set_line_label(n+1, "Im{{{0}}}".format(fname))
n += 2
self.connect(self.srcs[0], self.skip)
diff --git a/gr-qtgui/apps/gr_time_plot_f b/gr-qtgui/apps/gr_time_plot_f
index 30834aca7a..e4f4b8d436 100755
--- a/gr-qtgui/apps/gr_time_plot_f
+++ b/gr-qtgui/apps/gr_time_plot_f
@@ -86,7 +86,7 @@ class gr_time_plot_f(gr.top_block):
# Set default labels based on file names
fname = f.split("/")[-1]
- self.gui_snk.set_title(n, "{0}".format(fname))
+ self.gui_snk.set_line_label(n, "{0}".format(fname))
n += 1
self.connect(self.srcs[0], self.skip)
diff --git a/gr-qtgui/apps/gr_time_plot_i b/gr-qtgui/apps/gr_time_plot_i
index 202fc32793..f9765db672 100755
--- a/gr-qtgui/apps/gr_time_plot_i
+++ b/gr-qtgui/apps/gr_time_plot_i
@@ -89,7 +89,7 @@ class gr_time_plot_f(gr.top_block):
# Set default labels based on file names
fname = f.split("/")[-1]
- self.gui_snk.set_title(n, "{0}".format(fname))
+ self.gui_snk.set_line_label(n, "{0}".format(fname))
n += 1
self.connect(self.srcs[0], self.cnvrt[0], self.skip)
diff --git a/gr-qtgui/apps/gr_time_plot_s b/gr-qtgui/apps/gr_time_plot_s
index 6788284833..43b098dbdb 100755
--- a/gr-qtgui/apps/gr_time_plot_s
+++ b/gr-qtgui/apps/gr_time_plot_s
@@ -89,7 +89,7 @@ class gr_time_plot_f(gr.top_block):
# Set default labels based on file names
fname = f.split("/")[-1]
- self.gui_snk.set_title(n, "{0}".format(fname))
+ self.gui_snk.set_line_label(n, "{0}".format(fname))
n += 1
self.connect(self.srcs[0], self.cnvrt[0], self.skip)
diff --git a/gr-qtgui/apps/grc_qt_example.grc b/gr-qtgui/apps/grc_qt_example.grc
index 170cd546ad..a0c9a0b6ae 100644
--- a/gr-qtgui/apps/grc_qt_example.grc
+++ b/gr-qtgui/apps/grc_qt_example.grc
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='ASCII'?>
<flow_graph>
- <timestamp>Sun Apr 10 16:49:13 2011</timestamp>
+ <timestamp>Sat Nov 10 14:58:46 2012</timestamp>
<block>
<key>options</key>
<param>
@@ -44,6 +44,10 @@
<value>True</value>
</param>
<param>
+ <key>max_nouts</key>
+ <value>0</value>
+ </param>
+ <param>
<key>realtime_scheduling</key>
<value></value>
</param>
@@ -80,37 +84,6 @@
</param>
</block>
<block>
- <key>gr_throttle</key>
- <param>
- <key>id</key>
- <value>gr_throttle_0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>type</key>
- <value>complex</value>
- </param>
- <param>
- <key>samples_per_second</key>
- <value>samp_rate</value>
- </param>
- <param>
- <key>vlen</key>
- <value>1</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(511, 96)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
<key>variable_qtgui_range</key>
<param>
<key>id</key>
@@ -166,49 +139,6 @@
</param>
</block>
<block>
- <key>gr_sig_source_x</key>
- <param>
- <key>id</key>
- <value>gr_sig_source_x_0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>type</key>
- <value>complex</value>
- </param>
- <param>
- <key>samp_rate</key>
- <value>samp_rate</value>
- </param>
- <param>
- <key>waveform</key>
- <value>gr.GR_COS_WAVE</value>
- </param>
- <param>
- <key>freq</key>
- <value>freq</value>
- </param>
- <param>
- <key>amp</key>
- <value>amp</value>
- </param>
- <param>
- <key>offset</key>
- <value>0</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(295, 64)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
<key>variable_qtgui_range</key>
<param>
<key>id</key>
@@ -319,10 +249,41 @@
</param>
</block>
<block>
- <key>gr_channel_model</key>
+ <key>gr_throttle</key>
<param>
<key>id</key>
- <value>gr_channel_model_0</value>
+ <value>gr_throttle_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>complex</value>
+ </param>
+ <param>
+ <key>samples_per_second</key>
+ <value>samp_rate</value>
+ </param>
+ <param>
+ <key>vlen</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(511, 96)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>channels_channel_model</key>
+ <param>
+ <key>id</key>
+ <value>channels_channel_model_0</value>
</param>
<param>
<key>_enabled</key>
@@ -346,11 +307,11 @@
</param>
<param>
<key>seed</key>
- <value>42</value>
+ <value>-42</value>
</param>
<param>
<key>_coordinate</key>
- <value>(727, 64)</value>
+ <value>(724, 64)</value>
</param>
<param>
<key>_rotation</key>
@@ -392,6 +353,10 @@
<value>samp_rate</value>
</param>
<param>
+ <key>rate</key>
+ <value>10</value>
+ </param>
+ <param>
<key>plotfreq</key>
<value>True</value>
</param>
@@ -412,8 +377,55 @@
<value></value>
</param>
<param>
+ <key>freqchangevar</key>
+ <value>None</value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(958, 72)</value>
+ <value>(958, 64)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>analog_sig_source_x</key>
+ <param>
+ <key>id</key>
+ <value>analog_sig_source_x_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>complex</value>
+ </param>
+ <param>
+ <key>samp_rate</key>
+ <value>samp_rate</value>
+ </param>
+ <param>
+ <key>waveform</key>
+ <value>analog.GR_COS_WAVE</value>
+ </param>
+ <param>
+ <key>freq</key>
+ <value>freq</value>
+ </param>
+ <param>
+ <key>amp</key>
+ <value>amp</value>
+ </param>
+ <param>
+ <key>offset</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(297, 64)</value>
</param>
<param>
<key>_rotation</key>
@@ -421,20 +433,20 @@
</param>
</block>
<connection>
- <source_block_id>gr_sig_source_x_0</source_block_id>
+ <source_block_id>analog_sig_source_x_0</source_block_id>
<sink_block_id>gr_throttle_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>gr_throttle_0</source_block_id>
- <sink_block_id>gr_channel_model_0</sink_block_id>
+ <source_block_id>channels_channel_model_0</source_block_id>
+ <sink_block_id>qtgui_sink_x_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>gr_channel_model_0</source_block_id>
- <sink_block_id>qtgui_sink_x_0</sink_block_id>
+ <source_block_id>gr_throttle_0</source_block_id>
+ <sink_block_id>channels_channel_model_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
diff --git a/gr-qtgui/apps/plot_form.py b/gr-qtgui/apps/plot_form.py
index 2fb19d72b8..f6841811a8 100644
--- a/gr-qtgui/apps/plot_form.py
+++ b/gr-qtgui/apps/plot_form.py
@@ -60,10 +60,29 @@ class dialog_box(QtGui.QWidget):
self.update_points)
self.layout = QtGui.QGridLayout(self)
- self.layout.addWidget(top_block.get_gui(), 0,0,1,2)
- self.layout.addLayout(self.start_form, 1,0,1,1)
- self.layout.addLayout(self.end_form, 1,1,1,1)
+ self.layout.addWidget(top_block.get_gui(), 1,0,1,2)
+ self.layout.addLayout(self.start_form, 2,0,1,1)
+ self.layout.addLayout(self.end_form, 2,1,1,1)
+ # Create a save action
+ self.save_act = QtGui.QAction("Save", self)
+ self.save_act.setShortcut(QtGui.QKeySequence.Save)
+ self.connect(self.save_act, QtCore.SIGNAL("triggered()"),
+ self.save_figure)
+
+ # Create an exit action
+ self.exit_act = QtGui.QAction("Exit", self)
+ self.exit_act.setShortcut(QtGui.QKeySequence.Close)
+ self.connect(self.exit_act, QtCore.SIGNAL("triggered()"),
+ self.close)
+
+ # Create a menu for the window
+ self.menu = QtGui.QToolBar("Menu", self)
+ self.menu.addAction(self.save_act)
+ self.menu.addAction(self.exit_act)
+
+ self.layout.addWidget(self.menu, 0,0,1,2)
+
self.resize(800, 500)
def update_points(self):
@@ -80,3 +99,29 @@ class dialog_box(QtGui.QWidget):
self.top_block.reset(newstart, newnsamps)
self._start = newstart
self._end = newend
+
+ def save_figure(self):
+ qpix = QtGui.QPixmap.grabWidget(self.top_block.pyWin)
+ types = "JPEG file (*.jpg);;" + \
+ "Portable Network Graphics file (*.png);;" + \
+ "Bitmap file (*.bmp);;" + \
+ "TIFF file (*.tiff)"
+ filebox = QtGui.QFileDialog(self, "Save Image", "./", types)
+ filebox.setViewMode(QtGui.QFileDialog.Detail)
+ if(filebox.exec_()):
+ filename = filebox.selectedFiles()[0]
+ filetype = filebox.selectedNameFilter()
+ else:
+ return
+
+ if(filetype.contains(".jpg")):
+ qpix.save(filename, "JPEG");
+ elif(filetype.contains(".png")):
+ qpix.save(filename, "PNG");
+ elif(filetype.contains(".bmp")):
+ qpix.save(filename, "BMP");
+ elif(filetype.contains(".tiff")):
+ qpix.save(filename, "TIFF");
+ else:
+ qpix.save(filename, "JPEG");
+
diff --git a/gr-qtgui/examples/pyqt_const_c.py b/gr-qtgui/examples/pyqt_const_c.py
index 125124ebc5..cf81aa120f 100755
--- a/gr-qtgui/examples/pyqt_const_c.py
+++ b/gr-qtgui/examples/pyqt_const_c.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Copyright 2011 Free Software Foundation, Inc.
+# Copyright 2011,2012 Free Software Foundation, Inc.
#
# This file is part of GNU Radio
#
@@ -28,7 +28,13 @@ try:
from PyQt4 import QtGui, QtCore
import sip
except ImportError:
- print "Error: Program requires PyQt4 and gr-qtgui."
+ sys.stderr.write("Error: Program requires PyQt4 and gr-qtgui.\n")
+ sys.exit(1)
+
+try:
+ from gnuradio import analog
+except ImportError:
+ sys.stderr.write("Error: Program requires gr-analog.\n")
sys.exit(1)
class dialog_box(QtGui.QWidget):
@@ -139,8 +145,8 @@ class my_top_block(gr.top_block):
self.qapp = QtGui.QApplication(sys.argv)
- src1 = gr.sig_source_c(Rs, gr.GR_SIN_WAVE, f1, 0.5, 0)
- src2 = gr.sig_source_c(Rs, gr.GR_SIN_WAVE, f2, 0.5, 0)
+ src1 = analog.sig_source_c(Rs, analog.GR_SIN_WAVE, f1, 0.5, 0)
+ src2 = analog.sig_source_c(Rs, analog.GR_SIN_WAVE, f2, 0.5, 0)
src = gr.add_cc()
channel = filter.channel_model(0.001)
thr = gr.throttle(gr.sizeof_gr_complex, 100*npts)
diff --git a/gr-qtgui/examples/pyqt_example_c.py b/gr-qtgui/examples/pyqt_example_c.py
index 9857aa774d..294964479a 100755
--- a/gr-qtgui/examples/pyqt_example_c.py
+++ b/gr-qtgui/examples/pyqt_example_c.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Copyright 2011 Free Software Foundation, Inc.
+# Copyright 2011,2012 Free Software Foundation, Inc.
#
# This file is part of GNU Radio
#
@@ -28,7 +28,13 @@ try:
from PyQt4 import QtGui, QtCore
import sip
except ImportError:
- print "Error: Program requires PyQt4 and gr-qtgui."
+ sys.stderr.write("Error: Program requires PyQt4 and gr-qtgui.\n")
+ sys.exit(1)
+
+try:
+ from gnuradio import analog
+except ImportError:
+ sys.stderr.write("Error: Program requires gr-analog.\n")
sys.exit(1)
class dialog_box(QtGui.QWidget):
@@ -143,12 +149,12 @@ class my_top_block(gr.top_block):
ss.close()
self.qapp.setStyleSheet(sstext)
- src1 = gr.sig_source_c(Rs, gr.GR_SIN_WAVE, f1, 0.1, 0)
- src2 = gr.sig_source_c(Rs, gr.GR_SIN_WAVE, f2, 0.1, 0)
+ src1 = analog.sig_source_c(Rs, analog.GR_SIN_WAVE, f1, 0.1, 0)
+ src2 = analog.sig_source_c(Rs, analog.GR_SIN_WAVE, f2, 0.1, 0)
src = gr.add_cc()
channel = filter.channel_model(0.001)
thr = gr.throttle(gr.sizeof_gr_complex, 100*fftsize)
- self.snk1 = qtgui.sink_c(fftsize, gr.firdes.WIN_BLACKMAN_hARRIS,
+ self.snk1 = qtgui.sink_c(fftsize, filter.firdes.WIN_BLACKMAN_hARRIS,
0, Rs,
"Complex Signal Example",
True, True, True, False)
diff --git a/gr-qtgui/examples/pyqt_example_f.py b/gr-qtgui/examples/pyqt_example_f.py
index d00011f403..d2b3d0eb26 100755
--- a/gr-qtgui/examples/pyqt_example_f.py
+++ b/gr-qtgui/examples/pyqt_example_f.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Copyright 2011 Free Software Foundation, Inc.
+# Copyright 2011,2012 Free Software Foundation, Inc.
#
# This file is part of GNU Radio
#
@@ -28,7 +28,13 @@ try:
from PyQt4 import QtGui, QtCore
import sip
except ImportError:
- print "Error: Program requires PyQt4 and gr-qtgui."
+ sys.stderr.write("Error: Program requires PyQt4 and gr-qtgui.\n")
+ sys.exit(1)
+
+try:
+ from gnuradio import analog
+except ImportError:
+ sys.stderr.write("Error: Program requires gr-analog.\n")
sys.exit(1)
class dialog_box(QtGui.QWidget):
@@ -139,11 +145,11 @@ class my_top_block(gr.top_block):
self.qapp = QtGui.QApplication(sys.argv)
- src1 = gr.sig_source_f(Rs, gr.GR_SIN_WAVE, f1, 0.1, 0)
- src2 = gr.sig_source_f(Rs, gr.GR_SIN_WAVE, f2, 0.1, 0)
+ src1 = analog.sig_source_f(Rs, analog.GR_SIN_WAVE, f1, 0.1, 0)
+ src2 = analg.sig_source_f(Rs, analog.GR_SIN_WAVE, f2, 0.1, 0)
src = gr.add_ff()
thr = gr.throttle(gr.sizeof_float, 100*fftsize)
- noise = gr.noise_source_f(gr.GR_GAUSSIAN, 0.001)
+ noise = analog.noise_source_f(analog.GR_GAUSSIAN, 0.001)
add = gr.add_ff()
self.snk1 = qtgui.sink_f(fftsize, gr.firdes.WIN_BLACKMAN_hARRIS,
0, Rs,
diff --git a/gr-qtgui/examples/pyqt_freq_c.py b/gr-qtgui/examples/pyqt_freq_c.py
index 6102e980e6..5f891f8935 100755
--- a/gr-qtgui/examples/pyqt_freq_c.py
+++ b/gr-qtgui/examples/pyqt_freq_c.py
@@ -28,7 +28,13 @@ try:
from PyQt4 import QtGui, QtCore
import sip
except ImportError:
- print "Error: Program requires PyQt4 and gr-qtgui."
+ sys.stderr.write("Error: Program requires PyQt4 and gr-qtgui.\n")
+ sys.exit(1)
+
+try:
+ from gnuradio import analog
+except ImportError:
+ sys.stderr.write("Error: Program requires gr-analog.\n")
sys.exit(1)
class dialog_box(QtGui.QWidget):
@@ -143,12 +149,12 @@ class my_top_block(gr.top_block):
ss.close()
self.qapp.setStyleSheet(sstext)
- src1 = gr.sig_source_c(Rs, gr.GR_SIN_WAVE, f1, 0.1, 0)
- src2 = gr.sig_source_c(Rs, gr.GR_SIN_WAVE, f2, 0.1, 0)
+ src1 = analog.sig_source_c(Rs, analog.GR_SIN_WAVE, f1, 0.1, 0)
+ src2 = analog.sig_source_c(Rs, analog.GR_SIN_WAVE, f2, 0.1, 0)
src = gr.add_cc()
channel = filter.channel_model(0.01)
thr = gr.throttle(gr.sizeof_gr_complex, 100*npts)
- self.snk1 = qtgui.freq_sink_c(npts, gr.firdes.WIN_BLACKMAN_hARRIS,
+ self.snk1 = qtgui.freq_sink_c(npts, analog.firdes.WIN_BLACKMAN_hARRIS,
0, Rs,
"Complex Freq Example", 3)
diff --git a/gr-qtgui/examples/pyqt_freq_f.py b/gr-qtgui/examples/pyqt_freq_f.py
index fb7a9f93c6..d276d11106 100755
--- a/gr-qtgui/examples/pyqt_freq_f.py
+++ b/gr-qtgui/examples/pyqt_freq_f.py
@@ -28,9 +28,16 @@ try:
from PyQt4 import QtGui, QtCore
import sip
except ImportError:
- print "Error: Program requires PyQt4 and gr-qtgui."
+ sys.stderr.write("Error: Program requires PyQt4 and gr-qtgui.\n")
sys.exit(1)
+try:
+ from gnuradio import analog
+except ImportError:
+ sys.stderr.write("Error: Program requires gr-analog.\n")
+ sys.exit(1)
+
+
class dialog_box(QtGui.QWidget):
def __init__(self, display, control):
QtGui.QWidget.__init__(self, None)
@@ -139,11 +146,11 @@ class my_top_block(gr.top_block):
self.qapp = QtGui.QApplication(sys.argv)
- src1 = gr.sig_source_f(Rs, gr.GR_SIN_WAVE, f1, 0.1, 0)
- src2 = gr.sig_source_f(Rs, gr.GR_SIN_WAVE, f2, 0.1, 0)
+ src1 = analog.sig_source_f(Rs, analog.GR_SIN_WAVE, f1, 0.1, 0)
+ src2 = analog.sig_source_f(Rs, analog.GR_SIN_WAVE, f2, 0.1, 0)
src = gr.add_ff()
thr = gr.throttle(gr.sizeof_float, 100*npts)
- self.snk1 = qtgui.freq_sink_f(npts, gr.firdes.WIN_BLACKMAN_hARRIS,
+ self.snk1 = qtgui.freq_sink_f(npts, filter.firdes.WIN_BLACKMAN_hARRIS,
0, Rs,
"Real freq Example", 3)
diff --git a/gr-qtgui/examples/pyqt_time_c.py b/gr-qtgui/examples/pyqt_time_c.py
index 4967f72595..ba5980a050 100755
--- a/gr-qtgui/examples/pyqt_time_c.py
+++ b/gr-qtgui/examples/pyqt_time_c.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Copyright 2011 Free Software Foundation, Inc.
+# Copyright 2011,2012 Free Software Foundation, Inc.
#
# This file is part of GNU Radio
#
@@ -28,7 +28,13 @@ try:
from PyQt4 import QtGui, QtCore
import sip
except ImportError:
- print "Error: Program requires PyQt4 and gr-qtgui."
+ sys.stderr.write("Error: Program requires PyQt4 and gr-qtgui.\n")
+ sys.exit(1)
+
+try:
+ from gnuradio import analog
+except ImportError:
+ sys.stderr.write("Error: Program requires gr-analog.\n")
sys.exit(1)
class dialog_box(QtGui.QWidget):
@@ -143,8 +149,8 @@ class my_top_block(gr.top_block):
ss.close()
self.qapp.setStyleSheet(sstext)
- src1 = gr.sig_source_c(Rs, gr.GR_SIN_WAVE, f1, 0.1, 0)
- src2 = gr.sig_source_c(Rs, gr.GR_SIN_WAVE, f2, 0.1, 0)
+ src1 = analog.sig_source_c(Rs, analog.GR_SIN_WAVE, f1, 0.1, 0)
+ src2 = analog.sig_source_c(Rs, analog.GR_SIN_WAVE, f2, 0.1, 0)
src = gr.add_cc()
channel = filter.channel_model(0.01)
thr = gr.throttle(gr.sizeof_gr_complex, 100*npts)
@@ -169,14 +175,14 @@ class my_top_block(gr.top_block):
pyWin = sip.wrapinstance(pyQt, QtGui.QWidget)
# Example of using signal/slot to set the title of a curve
- pyWin.connect(pyWin, QtCore.SIGNAL("setTitle(int, QString)"),
- pyWin, QtCore.SLOT("setTitle(int, QString)"))
- pyWin.emit(QtCore.SIGNAL("setTitle(int, QString)"), 0, "Re{sum}")
- self.snk1.set_title(1, "Im{Sum}")
- #self.snk1.set_title(2, "Re{src1}")
- #self.snk1.set_title(3, "Im{src1}")
- #self.snk1.set_title(4, "Re{src2}")
- #self.snk1.set_title(5, "Im{src2}")
+ pyWin.connect(pyWin, QtCore.SIGNAL("setLineLabel(int, QString)"),
+ pyWin, QtCore.SLOT("setLineLabel(int, QString)"))
+ pyWin.emit(QtCore.SIGNAL("setLineLabel(int, QString)"), 0, "Re{sum}")
+ self.snk1.set_line_label(1, "Im{Sum}")
+ #self.snk1.set_line_label(2, "Re{src1}")
+ #self.snk1.set_line_label(3, "Im{src1}")
+ #self.snk1.set_line_label(4, "Re{src2}")
+ #self.snk1.set_line_label(5, "Im{src2}")
# Can also set the color of a curve
#self.snk1.set_color(5, "blue")
diff --git a/gr-qtgui/examples/pyqt_time_f.py b/gr-qtgui/examples/pyqt_time_f.py
index 464d8939b0..d7119dcb93 100755
--- a/gr-qtgui/examples/pyqt_time_f.py
+++ b/gr-qtgui/examples/pyqt_time_f.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Copyright 2011 Free Software Foundation, Inc.
+# Copyright 2011,2012 Free Software Foundation, Inc.
#
# This file is part of GNU Radio
#
@@ -28,7 +28,13 @@ try:
from PyQt4 import QtGui, QtCore
import sip
except ImportError:
- print "Error: Program requires PyQt4 and gr-qtgui."
+ sys.stderr.write("Error: Program requires PyQt4 and gr-qtgui.\n")
+ sys.exit(1)
+
+try:
+ from gnuradio import analog
+except ImportError:
+ sys.stderr.write("Error: Program requires gr-analog.\n")
sys.exit(1)
class dialog_box(QtGui.QWidget):
@@ -139,11 +145,11 @@ class my_top_block(gr.top_block):
self.qapp = QtGui.QApplication(sys.argv)
- src1 = gr.sig_source_f(Rs, gr.GR_SIN_WAVE, f1, 0.1, 0)
- src2 = gr.sig_source_f(Rs, gr.GR_SIN_WAVE, f2, 0.1, 0)
+ src1 = analog.sig_source_f(Rs, analog.GR_SIN_WAVE, f1, 0.1, 0)
+ src2 = analog.sig_source_f(Rs, analog.GR_SIN_WAVE, f2, 0.1, 0)
src = gr.add_ff()
thr = gr.throttle(gr.sizeof_float, 100*npts)
- noise = gr.noise_source_f(gr.GR_GAUSSIAN, 0.001)
+ noise = analog.noise_source_f(analog.GR_GAUSSIAN, 0.001)
add = gr.add_ff()
self.snk1 = qtgui.time_sink_f(npts, Rs,
"Complex Time Example", 3)
@@ -168,11 +174,11 @@ class my_top_block(gr.top_block):
pyWin = sip.wrapinstance(pyQt, QtGui.QWidget)
# Example of using signal/slot to set the title of a curve
- pyWin.connect(pyWin, QtCore.SIGNAL("setTitle(int, QString)"),
- pyWin, QtCore.SLOT("setTitle(int, QString)"))
- pyWin.emit(QtCore.SIGNAL("setTitle(int, QString)"), 0, "sum")
- self.snk1.set_title(1, "src1")
- self.snk1.set_title(2, "src2")
+ pyWin.connect(pyWin, QtCore.SIGNAL("setLineLabel(int, QString)"),
+ pyWin, QtCore.SLOT("setLineLabel(int, QString)"))
+ pyWin.emit(QtCore.SIGNAL("setLineLabel(int, QString)"), 0, "sum")
+ self.snk1.set_line_label(1, "src1")
+ self.snk1.set_line_label(2, "src2")
# Can also set the color of a curve
#self.snk1.set_color(5, "blue")
diff --git a/gr-qtgui/examples/pyqt_waterfall_c.py b/gr-qtgui/examples/pyqt_waterfall_c.py
index 3b65c5eb5c..eb7e731dfd 100755
--- a/gr-qtgui/examples/pyqt_waterfall_c.py
+++ b/gr-qtgui/examples/pyqt_waterfall_c.py
@@ -28,7 +28,13 @@ try:
from PyQt4 import QtGui, QtCore
import sip
except ImportError:
- print "Error: Program requires PyQt4 and gr-qtgui."
+ sys.stderr.write("Error: Program requires PyQt4 and gr-qtgui.\n")
+ sys.exit(1)
+
+try:
+ from gnuradio import analog
+except ImportError:
+ sys.stderr.write("Error: Program requires gr-analog.\n")
sys.exit(1)
class dialog_box(QtGui.QWidget):
@@ -143,12 +149,12 @@ class my_top_block(gr.top_block):
ss.close()
self.qapp.setStyleSheet(sstext)
- src1 = gr.sig_source_c(Rs, gr.GR_SIN_WAVE, f1, 0.1, 0)
- src2 = gr.sig_source_c(Rs, gr.GR_SIN_WAVE, f2, 0.1, 0)
+ src1 = analog.sig_source_c(Rs, analog.GR_SIN_WAVE, f1, 0.1, 0)
+ src2 = analog.sig_source_c(Rs, analog.GR_SIN_WAVE, f2, 0.1, 0)
src = gr.add_cc()
channel = filter.channel_model(0.01)
thr = gr.throttle(gr.sizeof_gr_complex, 100*npts)
- self.snk1 = qtgui.waterfall_sink_c(npts, gr.firdes.WIN_BLACKMAN_hARRIS,
+ self.snk1 = qtgui.waterfall_sink_c(npts, filter.firdes.WIN_BLACKMAN_hARRIS,
0, Rs,
"Complex Waterfall Example")
diff --git a/gr-qtgui/examples/pyqt_waterfall_f.py b/gr-qtgui/examples/pyqt_waterfall_f.py
index 29ae259e5f..ff79924843 100755
--- a/gr-qtgui/examples/pyqt_waterfall_f.py
+++ b/gr-qtgui/examples/pyqt_waterfall_f.py
@@ -28,7 +28,13 @@ try:
from PyQt4 import QtGui, QtCore
import sip
except ImportError:
- print "Error: Program requires PyQt4 and gr-qtgui."
+ sys.stderr.write("Error: Program requires PyQt4 and gr-qtgui.\n")
+ sys.exit(1)
+
+try:
+ from gnuradio import analog
+except ImportError:
+ sys.stderr.write("Error: Program requires gr-analog.\n")
sys.exit(1)
class dialog_box(QtGui.QWidget):
@@ -139,11 +145,11 @@ class my_top_block(gr.top_block):
self.qapp = QtGui.QApplication(sys.argv)
- src1 = gr.sig_source_f(Rs, gr.GR_SIN_WAVE, f1, 0.1, 0)
- src2 = gr.sig_source_f(Rs, gr.GR_SIN_WAVE, f2, 0.1, 0)
+ src1 = analog.sig_source_f(Rs, analog.GR_SIN_WAVE, f1, 0.1, 0)
+ src2 = analog.sig_source_f(Rs, analog.GR_SIN_WAVE, f2, 0.1, 0)
src = gr.add_ff()
thr = gr.throttle(gr.sizeof_float, 100*npts)
- self.snk1 = qtgui.waterfall_sink_f(npts, gr.firdes.WIN_BLACKMAN_hARRIS,
+ self.snk1 = qtgui.waterfall_sink_f(npts, filter.firdes.WIN_BLACKMAN_hARRIS,
0, Rs,
"Real Waterfall Example")
diff --git a/gr-qtgui/grc/qtgui_const_sink_x.xml b/gr-qtgui/grc/qtgui_const_sink_x.xml
index 536237d164..31b13fe136 100644
--- a/gr-qtgui/grc/qtgui_const_sink_x.xml
+++ b/gr-qtgui/grc/qtgui_const_sink_x.xml
@@ -16,6 +16,8 @@ qtgui.$(type.fcn)(
$name, \#name
$nconnections \#number of inputs
)
+self.$(id).set_y_axis($ymin, $ymax)
+self.$(id).set_x_axis($xmin, $xmax)
self._$(id)_win = sip.wrapinstance(self.$(id).pyqwidget(), Qt.QWidget)
$(gui_hint()($win))</make>
<callback>set_resize($width, $height)</callback>
@@ -43,6 +45,34 @@ $(gui_hint()($win))</make>
<type>int</type>
</param>
<param>
+ <name>Y min</name>
+ <key>ymin</key>
+ <value>-2</value>
+ <type>real</type>
+ <hide>part</hide>
+ </param>
+ <param>
+ <name>Y max</name>
+ <key>ymax</key>
+ <value>2</value>
+ <type>real</type>
+ <hide>part</hide>
+ </param>
+ <param>
+ <name>X min</name>
+ <key>xmin</key>
+ <value>-2</value>
+ <type>real</type>
+ <hide>part</hide>
+ </param>
+ <param>
+ <name>X max</name>
+ <key>xmax</key>
+ <value>2</value>
+ <type>real</type>
+ <hide>part</hide>
+ </param>
+ <param>
<name>Number of Inputs</name>
<key>nconnections</key>
<value>1</value>
diff --git a/gr-qtgui/grc/qtgui_freq_sink_x.xml b/gr-qtgui/grc/qtgui_freq_sink_x.xml
index 69ce5f4e68..0844a7cbc9 100644
--- a/gr-qtgui/grc/qtgui_freq_sink_x.xml
+++ b/gr-qtgui/grc/qtgui_freq_sink_x.xml
@@ -20,6 +20,7 @@ qtgui.$(type.fcn)(
$name, \#name
$nconnections \#number of inputs
)
+self.$(id).set_y_axis($ymin, $ymax)
self._$(id)_win = sip.wrapinstance(self.$(id).pyqwidget(), Qt.QWidget)
$(gui_hint()($win))</make>
<callback>set_frequency_range($fc, $bw)</callback>
@@ -96,6 +97,20 @@ $(gui_hint()($win))</make>
<type>real</type>
</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>
diff --git a/gr-qtgui/grc/qtgui_time_sink_x.xml b/gr-qtgui/grc/qtgui_time_sink_x.xml
index 17b2cfd016..7b15aa840a 100644
--- a/gr-qtgui/grc/qtgui_time_sink_x.xml
+++ b/gr-qtgui/grc/qtgui_time_sink_x.xml
@@ -14,16 +14,19 @@
<make>#set $win = 'self._%s_win'%$id
qtgui.$(type.fcn)(
$size, \#size
- $bw, \#bw
+ $srate, \#samp_rate
$name, \#name
$nconnections \#number of inputs
)
+self.$(id).set_y_axis($ymin, $ymax)
self._$(id)_win = sip.wrapinstance(self.$(id).pyqwidget(), Qt.QWidget)
$(gui_hint()($win))</make>
<callback>set_time_domain_axis($min, $max)</callback>
<callback>set_update_time($t)</callback>
<callback>set_title($which, $title)</callback>
<callback>set_color($which, $color)</callback>
+ <callback>set_y_axis($ymin, $ymax)</callback>
+ <callback>set_samp_rate($srate)</callback>
<param>
<name>Type</name>
<key>type</key>
@@ -45,12 +48,26 @@ $(gui_hint()($win))</make>
<type>int</type>
</param>
<param>
- <name>Bandwidth (Hz)</name>
- <key>bw</key>
+ <name>Sample Rate</name>
+ <key>srate</key>
<value>samp_rate</value>
<type>real</type>
</param>
<param>
+ <name>Y min</name>
+ <key>ymin</key>
+ <value>-1</value>
+ <type>real</type>
+ <hide>part</hide>
+ </param>
+ <param>
+ <name>Y max</name>
+ <key>ymax</key>
+ <value>1</value>
+ <type>real</type>
+ <hide>part</hide>
+ </param>
+ <param>
<name>Number of Inputs</name>
<key>nconnections</key>
<value>1</value>
diff --git a/gr-qtgui/include/qtgui/const_sink_c.h b/gr-qtgui/include/qtgui/const_sink_c.h
index 48da4b9fa1..dece60f196 100644
--- a/gr-qtgui/include/qtgui/const_sink_c.h
+++ b/gr-qtgui/include/qtgui/const_sink_c.h
@@ -62,9 +62,13 @@ namespace gr {
virtual void exec_() = 0;
virtual PyObject* pyqwidget() = 0;
+ virtual void set_y_axis(double min, double max) = 0;
+ virtual void set_x_axis(double min, double max) = 0;
+
virtual void set_update_time(double t) = 0;
- virtual void set_title(int which, const std::string &title) = 0;
- virtual void set_color(int which, const std::string &color) = 0;
+ virtual void set_title(const std::string &title) = 0;
+ virtual void set_line_label(int which, const std::string &label) = 0;
+ virtual void set_line_color(int which, const std::string &color) = 0;
virtual void set_line_width(int which, int width) = 0;
virtual void set_line_style(int which, Qt::PenStyle style) = 0;
virtual void set_line_marker(int which, QwtSymbol::Style marker) = 0;
@@ -72,6 +76,9 @@ namespace gr {
virtual void set_size(int width, int height) = 0;
+ virtual int nsamps() const = 0;
+ virtual void reset() = 0;
+
QApplication *d_qApplication;
};
diff --git a/gr-qtgui/include/qtgui/freq_sink_c.h b/gr-qtgui/include/qtgui/freq_sink_c.h
index 2bef9035e8..07728e2abe 100644
--- a/gr-qtgui/include/qtgui/freq_sink_c.h
+++ b/gr-qtgui/include/qtgui/freq_sink_c.h
@@ -75,17 +75,20 @@ namespace gr {
virtual float fft_average() const = 0;
virtual void set_frequency_range(const double centerfreq, const double bandwidth) = 0;
- virtual void set_fft_power_db(double min, double max) = 0;
+ virtual void set_y_axis(double min, double max) = 0;
virtual void set_update_time(double t) = 0;
- virtual void set_title(int which, const std::string &title) = 0;
- virtual void set_color(int which, const std::string &color) = 0;
+ virtual void set_title(const std::string &title) = 0;
+ virtual void set_line_label(int which, const std::string &label) = 0;
+ virtual void set_line_color(int which, const std::string &color) = 0;
virtual void set_line_width(int which, int width) = 0;
virtual void set_line_style(int which, Qt::PenStyle style) = 0;
virtual void set_line_marker(int which, QwtSymbol::Style marker) = 0;
virtual void set_size(int width, int height) = 0;
+ virtual void reset() = 0;
+
QApplication *d_qApplication;
};
diff --git a/gr-qtgui/include/qtgui/freq_sink_f.h b/gr-qtgui/include/qtgui/freq_sink_f.h
index 51c4ac10a1..0ed81c62b2 100644
--- a/gr-qtgui/include/qtgui/freq_sink_f.h
+++ b/gr-qtgui/include/qtgui/freq_sink_f.h
@@ -75,17 +75,20 @@ namespace gr {
virtual float fft_average() const = 0;
virtual void set_frequency_range(const double centerfreq, const double bandwidth) = 0;
- virtual void set_fft_power_db(double min, double max) = 0;
+ virtual void set_y_axis(double min, double max) = 0;
virtual void set_update_time(double t) = 0;
- virtual void set_title(int which, const std::string &title) = 0;
- virtual void set_color(int which, const std::string &color) = 0;
+ virtual void set_title(const std::string &title) = 0;
+ virtual void set_line_label(int which, const std::string &label) = 0;
+ virtual void set_line_color(int which, const std::string &color) = 0;
virtual void set_line_width(int which, int width) = 0;
virtual void set_line_style(int which, Qt::PenStyle style) = 0;
virtual void set_line_marker(int which, QwtSymbol::Style marker) = 0;
virtual void set_size(int width, int height) = 0;
+ virtual void reset() = 0;
+
QApplication *d_qApplication;
};
diff --git a/gr-qtgui/include/qtgui/time_sink_c.h b/gr-qtgui/include/qtgui/time_sink_c.h
index 17176e65f9..ba31ae2fc8 100644
--- a/gr-qtgui/include/qtgui/time_sink_c.h
+++ b/gr-qtgui/include/qtgui/time_sink_c.h
@@ -54,12 +54,12 @@ namespace gr {
* \brief Build complex time sink
*
* \param size number of points to plot at once
- * \param bw bandwidth of signal (used to set x-axis labels)
+ * \param samp_rate sample rate (used to set x-axis labels)
* \param name title for the plot
* \param nconnections number of signals connected to sink
* \param parent a QWidget parent object, if any
*/
- static sptr make(int size, double bw,
+ static sptr make(int size, double samp_rate,
const std::string &name,
int nconnections,
QWidget *parent=NULL);
@@ -67,17 +67,22 @@ namespace gr {
virtual void exec_() = 0;
virtual PyObject* pyqwidget() = 0;
- virtual void set_time_domain_axis(double min, double max) = 0;
+ virtual void set_y_axis(double min, double max) = 0;
virtual void set_update_time(double t) = 0;
- virtual void set_title(int which, const std::string &title) = 0;
- virtual void set_color(int which, const std::string &color) = 0;
+ virtual void set_title(const std::string &title) = 0;
+ virtual void set_line_label(int which, const std::string &label) = 0;
+ virtual void set_line_color(int which, const std::string &color) = 0;
virtual void set_line_width(int which, int width) = 0;
virtual void set_line_style(int which, Qt::PenStyle style) = 0;
virtual void set_line_marker(int which, QwtSymbol::Style marker) = 0;
virtual void set_nsamps(const int newsize) = 0;
+ virtual void set_samp_rate(const double samp_rate) = 0;
virtual void set_size(int width, int height) = 0;
+ virtual int nsamps() const = 0;
+ virtual void reset() = 0;
+
QApplication *d_qApplication;
};
diff --git a/gr-qtgui/include/qtgui/time_sink_f.h b/gr-qtgui/include/qtgui/time_sink_f.h
index df6ba9f554..6ab10f117e 100644
--- a/gr-qtgui/include/qtgui/time_sink_f.h
+++ b/gr-qtgui/include/qtgui/time_sink_f.h
@@ -52,12 +52,12 @@ namespace gr {
* \brief Build floating point time sink
*
* \param size number of points to plot at once
- * \param bw bandwidth of signal (used to set x-axis labels)
+ * \param samp_rate sample rate (used to set x-axis labels)
* \param name title for the plot
* \param nconnections number of signals connected to sink
* \param parent a QWidget parent object, if any
*/
- static sptr make(int size, double bw,
+ static sptr make(int size, double samp_rate,
const std::string &name,
int nconnections,
QWidget *parent=NULL);
@@ -65,17 +65,22 @@ namespace gr {
virtual void exec_() = 0;
virtual PyObject* pyqwidget() = 0;
- virtual void set_time_domain_axis(double min, double max) = 0;
+ virtual void set_y_axis(double min, double max) = 0;
virtual void set_update_time(double t) = 0;
- virtual void set_title(int which, const std::string &title) = 0;
- virtual void set_color(int which, const std::string &color) = 0;
+ virtual void set_title(const std::string &title) = 0;
+ virtual void set_line_label(int which, const std::string &line) = 0;
+ virtual void set_line_color(int which, const std::string &color) = 0;
virtual void set_line_width(int which, int width) = 0;
virtual void set_line_style(int which, Qt::PenStyle style) = 0;
virtual void set_line_marker(int which, QwtSymbol::Style marker) = 0;
virtual void set_nsamps(const int newsize) = 0;
+ virtual void set_samp_rate(const double samp_rate) = 0;
virtual void set_size(int width, int height) = 0;
+ virtual int nsamps() const = 0;
+ virtual void reset() = 0;
+
QApplication *d_qApplication;
};
diff --git a/gr-qtgui/include/qtgui/waterfall_sink_c.h b/gr-qtgui/include/qtgui/waterfall_sink_c.h
index 838d50f44d..cb1589f993 100644
--- a/gr-qtgui/include/qtgui/waterfall_sink_c.h
+++ b/gr-qtgui/include/qtgui/waterfall_sink_c.h
@@ -84,7 +84,8 @@ namespace gr {
virtual void set_update_time(double t) = 0;
virtual void set_title(const std::string &title) = 0;
- virtual void set_color(const std::string &color) = 0;
+ virtual void set_line_label(const std::string &line) = 0;
+ virtual void set_line_color(const std::string &color) = 0;
virtual void set_line_width(int width) = 0;
virtual void set_line_style(Qt::PenStyle style) = 0;
virtual void set_line_marker(QwtSymbol::Style marker) = 0;
diff --git a/gr-qtgui/include/qtgui/waterfall_sink_f.h b/gr-qtgui/include/qtgui/waterfall_sink_f.h
index 0ee38256c3..355b5e45f2 100644
--- a/gr-qtgui/include/qtgui/waterfall_sink_f.h
+++ b/gr-qtgui/include/qtgui/waterfall_sink_f.h
@@ -83,7 +83,8 @@ namespace gr {
virtual void set_update_time(double t) = 0;
virtual void set_title(const std::string &title) = 0;
- virtual void set_color(const std::string &color) = 0;
+ virtual void set_line_label(const std::string &line) = 0;
+ virtual void set_line_color(const std::string &color) = 0;
virtual void set_line_width(int width) = 0;
virtual void set_line_style(Qt::PenStyle style) = 0;
virtual void set_line_marker(QwtSymbol::Style marker) = 0;
diff --git a/gr-qtgui/lib/ConstellationDisplayPlot.cc b/gr-qtgui/lib/ConstellationDisplayPlot.cc
index 5bc89f83fa..51000cab17 100644
--- a/gr-qtgui/lib/ConstellationDisplayPlot.cc
+++ b/gr-qtgui/lib/ConstellationDisplayPlot.cc
@@ -65,14 +65,6 @@ ConstellationDisplayPlot::ConstellationDisplayPlot(int nplots, QWidget* parent)
_numPoints = 1024;
_penSize = 5;
- setAxisScaleEngine(QwtPlot::xBottom, new QwtLinearScaleEngine);
- set_xaxis(-2.0, 2.0);
- setAxisTitle(QwtPlot::xBottom, "In-phase");
-
- setAxisScaleEngine(QwtPlot::yLeft, new QwtLinearScaleEngine);
- set_yaxis(-2.0, 2.0);
- setAxisTitle(QwtPlot::yLeft, "Quadrature");
-
_zoomer = new ConstellationDisplayZoomer(canvas());
#if QWT_VERSION < 0x060000
@@ -88,6 +80,15 @@ ConstellationDisplayPlot::ConstellationDisplayPlot(int nplots, QWidget* parent)
_zoomer->setRubberBandPen(c);
_zoomer->setTrackerPen(c);
+ setAxisScaleEngine(QwtPlot::xBottom, new QwtLinearScaleEngine);
+ set_xaxis(-2.0, 2.0);
+ setAxisTitle(QwtPlot::xBottom, "In-phase");
+
+ setAxisScaleEngine(QwtPlot::yLeft, new QwtLinearScaleEngine);
+ set_yaxis(-2.0, 2.0);
+ setAxisTitle(QwtPlot::yLeft, "Quadrature");
+ updateAxes();
+
QList<QColor> colors;
colors << QColor(Qt::blue) << QColor(Qt::red) << QColor(Qt::green)
<< QColor(Qt::black) << QColor(Qt::cyan) << QColor(Qt::magenta)
@@ -135,13 +136,13 @@ ConstellationDisplayPlot::~ConstellationDisplayPlot()
void
ConstellationDisplayPlot::set_xaxis(double min, double max)
{
- setAxisScale(QwtPlot::xBottom, min, max);
+ setXaxis(min, max);
}
void
ConstellationDisplayPlot::set_yaxis(double min, double max)
{
- setAxisScale(QwtPlot::yLeft, min, max);
+ setYaxis(min, max);
}
void
diff --git a/gr-qtgui/lib/DisplayPlot.cc b/gr-qtgui/lib/DisplayPlot.cc
index 2b982b77d2..0b422ee1ca 100644
--- a/gr-qtgui/lib/DisplayPlot.cc
+++ b/gr-qtgui/lib/DisplayPlot.cc
@@ -107,19 +107,19 @@ DisplayPlot::setXaxis(double min, double max)
}
void
-DisplayPlot::setTitle(int which, QString title)
+DisplayPlot::setLineLabel(int which, QString label)
{
- _plot_curve[which]->setTitle(title);
+ _plot_curve[which]->setTitle(label);
}
QString
-DisplayPlot::title(int which)
+DisplayPlot::lineLabel(int which)
{
return _plot_curve[which]->title().text();
}
void
-DisplayPlot::setColor(int which, QColor color)
+DisplayPlot::setLineColor(int which, QString color)
{
if (which < _nplots) {
// Set the color of the pen
@@ -144,7 +144,7 @@ DisplayPlot::setColor(int which, QColor color)
}
QColor
-DisplayPlot::getColor(int which) const {
+DisplayPlot::getLineColor(int which) const {
// If that plot doesn't exist then return black.
if (which < _nplots)
return _plot_curve[which]->pen().color();
@@ -154,7 +154,7 @@ DisplayPlot::getColor(int which) const {
// Use a preprocessor macro to create a bunch of hooks for Q_PROPERTY and hence the stylesheet.
#define SETUPLINE(i, im1) \
void DisplayPlot::setLineColor ## i (QColor c) {setColor(im1, c);} \
- const QColor DisplayPlot::getLineColor ## i () const {return getColor(im1);} \
+ const QColor DisplayPlot::getLineColor ## i () const {return getLineColor(im1);} \
void DisplayPlot::setLineWidth ## i (int width) {setLineWidth(im1, width);} \
int DisplayPlot::getLineWidth ## i () const {return getLineWidth(im1);} \
void DisplayPlot::setLineStyle ## i (Qt::PenStyle ps) {setLineStyle(im1, ps);} \
diff --git a/gr-qtgui/lib/DisplayPlot.h b/gr-qtgui/lib/DisplayPlot.h
index fa8c14e764..934794680d 100644
--- a/gr-qtgui/lib/DisplayPlot.h
+++ b/gr-qtgui/lib/DisplayPlot.h
@@ -178,10 +178,10 @@ public:
public slots:
void setYaxis(double min, double max);
void setXaxis(double min, double max);
- void setTitle(int which, QString title);
+ void setLineLabel(int which, QString label);
+ void setLineColor(int which, QString color);
- void setColor(int which, QColor color);
- QColor getColor(int which) const;
+ QColor getLineColor(int which) const;
void setLineWidth(int which, int width);
int getLineWidth(int which) const;
void setLineStyle(int which, Qt::PenStyle style);
@@ -251,7 +251,7 @@ public slots:
void setStop(bool on);
- QString title(int which);
+ QString lineLabel(int which);
void resizeSlot(QSize *s);
diff --git a/gr-qtgui/lib/FrequencyDisplayPlot.cc b/gr-qtgui/lib/FrequencyDisplayPlot.cc
index a2894a5042..0fdba579c8 100644
--- a/gr-qtgui/lib/FrequencyDisplayPlot.cc
+++ b/gr-qtgui/lib/FrequencyDisplayPlot.cc
@@ -221,7 +221,7 @@ FrequencyDisplayPlot::~FrequencyDisplayPlot()
}
void
-FrequencyDisplayPlot::set_yaxis(double min, double max)
+FrequencyDisplayPlot::setYaxis(double min, double max)
{
// Get the new max/min values for the plot
_minYAxis = min;
diff --git a/gr-qtgui/lib/FrequencyDisplayPlot.h b/gr-qtgui/lib/FrequencyDisplayPlot.h
index fa153986b8..679ebf1cc4 100644
--- a/gr-qtgui/lib/FrequencyDisplayPlot.h
+++ b/gr-qtgui/lib/FrequencyDisplayPlot.h
@@ -72,7 +72,7 @@ public:
void replot();
- void set_yaxis(double min, double max);
+ void setYaxis(double min, double max);
void SetTraceColour (QColor);
void SetBGColour (QColor c);
diff --git a/gr-qtgui/lib/const_sink_c_impl.cc b/gr-qtgui/lib/const_sink_c_impl.cc
index b504f7121d..547530c823 100644
--- a/gr-qtgui/lib/const_sink_c_impl.cc
+++ b/gr-qtgui/lib/const_sink_c_impl.cc
@@ -44,9 +44,9 @@ namespace gr {
}
const_sink_c_impl::const_sink_c_impl(int size,
- const std::string &name,
- int nconnections,
- QWidget *parent)
+ const std::string &name,
+ int nconnections,
+ QWidget *parent)
: gr_sync_block("const_sink_c",
gr_make_io_signature(nconnections, nconnections, sizeof(gr_complex)),
gr_make_io_signature(0, 0, 0)),
@@ -94,7 +94,7 @@ namespace gr {
}
d_main_gui = new ConstellationDisplayForm(d_nconnections, d_parent);
- d_main_gui->SetNPoints(d_size);
+ d_main_gui->setNPoints(d_size);
// initialize update time to 10 times a second
set_update_time(0.1);
d_last_time = 0;
@@ -121,6 +121,18 @@ namespace gr {
}
void
+ const_sink_c_impl::set_y_axis(double min, double max)
+ {
+ d_main_gui->setYaxis(min, max);
+ }
+
+ void
+ const_sink_c_impl::set_x_axis(double min, double max)
+ {
+ d_main_gui->setXaxis(min, max);
+ }
+
+ void
const_sink_c_impl::set_update_time(double t)
{
//convert update time to ticks
@@ -130,15 +142,21 @@ namespace gr {
}
void
- const_sink_c_impl::set_title(int which, const std::string &title)
+ const_sink_c_impl::set_title(const std::string &title)
{
- d_main_gui->setTitle(which, title.c_str());
+ d_main_gui->setTitle(title.c_str());
}
void
- const_sink_c_impl::set_color(int which, const std::string &color)
+ const_sink_c_impl::set_line_label(int which, const std::string &label)
{
- d_main_gui->setColor(which, color.c_str());
+ d_main_gui->setLineLabel(which, label.c_str());
+ }
+
+ void
+ const_sink_c_impl::set_line_color(int which, const std::string &color)
+ {
+ d_main_gui->setLineColor(which, color.c_str());
}
void
@@ -187,18 +205,30 @@ namespace gr {
d_size = newsize;
d_index = 0;
- d_main_gui->SetNPoints(d_size);
+ d_main_gui->setNPoints(d_size);
}
}
void
const_sink_c_impl::npoints_resize()
{
- int newsize = d_main_gui->GetNPoints();
+ int newsize = d_main_gui->getNPoints();
set_nsamps(newsize);
}
int
+ const_sink_c_impl::nsamps() const
+ {
+ return d_size;
+ }
+
+ void
+ const_sink_c_impl::reset()
+ {
+ d_index = 0;
+ }
+
+ int
const_sink_c_impl::work(int noutput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items)
diff --git a/gr-qtgui/lib/const_sink_c_impl.h b/gr-qtgui/lib/const_sink_c_impl.h
index a17a8793b4..8bb2344c9f 100644
--- a/gr-qtgui/lib/const_sink_c_impl.h
+++ b/gr-qtgui/lib/const_sink_c_impl.h
@@ -65,9 +65,13 @@ namespace gr {
QWidget* qwidget();
PyObject* pyqwidget();
+ void set_y_axis(double min, double max);
+ void set_x_axis(double min, double max);
+
void set_update_time(double t);
- void set_title(int which, const std::string &title);
- void set_color(int which, const std::string &color);
+ void set_title(const std::string &title);
+ void set_line_label(int which, const std::string &label);
+ void set_line_color(int which, const std::string &color);
void set_line_width(int which, int width);
void set_line_style(int which, Qt::PenStyle style);
void set_line_marker(int which, QwtSymbol::Style marker);
@@ -75,6 +79,9 @@ namespace gr {
void set_size(int width, int height);
+ int nsamps() const;
+ void reset();
+
int work(int noutput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items);
diff --git a/gr-qtgui/lib/constellationdisplayform.cc b/gr-qtgui/lib/constellationdisplayform.cc
index 98375ebaed..5f742de991 100644
--- a/gr-qtgui/lib/constellationdisplayform.cc
+++ b/gr-qtgui/lib/constellationdisplayform.cc
@@ -39,7 +39,7 @@ ConstellationDisplayForm::ConstellationDisplayForm(int nplots, QWidget* parent)
NPointsMenu *nptsmenu = new NPointsMenu(this);
_menu->addAction(nptsmenu);
connect(nptsmenu, SIGNAL(whichTrigger(int)),
- this, SLOT(SetNPoints(const int)));
+ this, SLOT(setNPoints(const int)));
Reset();
@@ -84,13 +84,25 @@ ConstellationDisplayForm::customEvent(QEvent * e)
}
int
-ConstellationDisplayForm::GetNPoints() const
+ConstellationDisplayForm::getNPoints() const
{
return d_npoints;
}
void
-ConstellationDisplayForm::SetNPoints(const int npoints)
+ConstellationDisplayForm::setNPoints(const int npoints)
{
d_npoints = npoints;
}
+
+void
+ConstellationDisplayForm::setYaxis(double min, double max)
+{
+ getPlot()->set_yaxis(min, max);
+}
+
+void
+ConstellationDisplayForm::setXaxis(double min, double max)
+{
+ getPlot()->set_xaxis(min, max);
+}
diff --git a/gr-qtgui/lib/constellationdisplayform.h b/gr-qtgui/lib/constellationdisplayform.h
index 6832bd44cc..d9715d3dd9 100644
--- a/gr-qtgui/lib/constellationdisplayform.h
+++ b/gr-qtgui/lib/constellationdisplayform.h
@@ -40,13 +40,14 @@ public:
ConstellationDisplayPlot* getPlot();
- int GetNPoints() const;
+ int getNPoints() const;
public slots:
void customEvent(QEvent * e);
- void SetNPoints(const int);
+ void setNPoints(const int);
- // add set x/y axis
+ void setYaxis(double min, double max);
+ void setXaxis(double min, double max);
private slots:
void newData(const QEvent*);
diff --git a/gr-qtgui/lib/displayform.cc b/gr-qtgui/lib/displayform.cc
index 08ced9c913..e2475cb95e 100644
--- a/gr-qtgui/lib/displayform.cc
+++ b/gr-qtgui/lib/displayform.cc
@@ -22,6 +22,8 @@
#include <displayform.h>
#include <iostream>
+#include <QPixmap>
+#include <QFileDialog>
DisplayForm::DisplayForm(int nplots, QWidget* parent)
: QWidget(parent), _nplots(nplots), _systemSpecifiedFlag(false)
@@ -58,11 +60,11 @@ DisplayForm::DisplayForm(int nplots, QWidget* parent)
_marker_alpha_menu.push_back(new MarkerAlphaMenu(i, this));
connect(_line_title_act[i], SIGNAL(whichTrigger(int, const QString&)),
- this, SLOT(setTitle(int, const QString&)));
+ this, SLOT(setLineLabel(int, const QString&)));
for(int j = 0; j < _line_color_menu[i]->getNumActions(); j++) {
connect(_line_color_menu[i], SIGNAL(whichTrigger(int, const QString&)),
- this, SLOT(setColor(int, const QString&)));
+ this, SLOT(setLineColor(int, const QString&)));
}
for(int j = 0; j < _line_width_menu[i]->getNumActions(); j++) {
@@ -95,6 +97,12 @@ DisplayForm::DisplayForm(int nplots, QWidget* parent)
_menu->addMenu(_lines_menu[i]);
}
+
+ _save_act = new QAction("Save", this);
+ _save_act->setStatusTip(tr("Save Figure"));
+ connect(_save_act, SIGNAL(triggered()), this, SLOT(saveFigure()));
+ _menu->addAction(_save_act);
+
Reset();
// Create a timer to update plots at the specified rate
@@ -145,7 +153,7 @@ DisplayForm::mousePressEvent( QMouseEvent * e)
// Update the line titles if changed externally
for(int i = 0; i < _nplots; i++) {
- _lines_menu[i]->setTitle(_displayPlot->title(i));
+ _lines_menu[i]->setTitle(_displayPlot->lineLabel(i));
}
_menu->exec(e->globalPos());
}
@@ -185,16 +193,22 @@ DisplayForm::setUpdateTime(double t)
}
void
-DisplayForm::setTitle(int which, const QString &title)
+DisplayForm::setTitle(const QString &title)
+{
+ _displayPlot->setTitle(title);
+}
+
+void
+DisplayForm::setLineLabel(int which, const QString &label)
{
- _displayPlot->setTitle(which, title);
+ _displayPlot->setLineLabel(which, label);
}
void
-DisplayForm::setColor(int which, const QString &color)
+DisplayForm::setLineColor(int which, const QString &color)
{
QColor c = QColor(color);
- _displayPlot->setColor(which, c);
+ _displayPlot->setLineColor(which, c);
_displayPlot->replot();
}
@@ -273,3 +287,40 @@ DisplayForm::setGrid()
else
setGrid(false);
}
+
+void
+DisplayForm::saveFigure()
+{
+ QPixmap qpix = QPixmap::grabWidget(this);
+
+ QString types = QString(tr("JPEG file (*.jpg);;Portable Network Graphics file (*.png);;Bitmap file (*.bmp);;TIFF file (*.tiff)"));
+
+ QString filename, filetype;
+ QFileDialog *filebox = new QFileDialog(0, "Save Image", "./", types);
+ filebox->setViewMode(QFileDialog::Detail);
+ if(filebox->exec()) {
+ filename = filebox->selectedFiles()[0];
+ filetype = filebox->selectedNameFilter();
+ }
+ else {
+ return;
+ }
+
+ if(filetype.contains(".jpg")) {
+ qpix.save(filename, "JPEG");
+ }
+ else if(filetype.contains(".png")) {
+ qpix.save(filename, "PNG");
+ }
+ else if(filetype.contains(".bmp")) {
+ qpix.save(filename, "BMP");
+ }
+ else if(filetype.contains(".tiff")) {
+ qpix.save(filename, "TIFF");
+ }
+ else {
+ qpix.save(filename, "JPEG");
+ }
+
+ delete filebox;
+}
diff --git a/gr-qtgui/lib/displayform.h b/gr-qtgui/lib/displayform.h
index c14b734d44..99b0e714f4 100644
--- a/gr-qtgui/lib/displayform.h
+++ b/gr-qtgui/lib/displayform.h
@@ -53,8 +53,9 @@ public slots:
void setUpdateTime(double t);
- void setTitle(int which, const QString &title);
- void setColor(int which, const QString &color);
+ void setTitle(const QString &title);
+ void setLineLabel(int which, const QString &label);
+ void setLineColor(int which, const QString &color);
void setLineWidth(int which, int width);
void setLineStyle(int which, Qt::PenStyle style);
void setLineMarker(int which, QwtSymbol::Style style);
@@ -66,6 +67,8 @@ public slots:
void setGrid(bool on);
void setGrid();
+ void saveFigure();
+
private slots:
virtual void newData(const QEvent*) = 0;
void updateGuiTimer();
@@ -99,6 +102,8 @@ protected:
QList<LineMarkerMenu*> _line_marker_menu;
QList<MarkerAlphaMenu*> _marker_alpha_menu;
+ QAction *_save_act;
+
QTimer *d_displayTimer;
double d_update_time;
};
diff --git a/gr-qtgui/lib/freq_sink_c_impl.cc b/gr-qtgui/lib/freq_sink_c_impl.cc
index cf5c989c09..e495dfcc25 100644
--- a/gr-qtgui/lib/freq_sink_c_impl.cc
+++ b/gr-qtgui/lib/freq_sink_c_impl.cc
@@ -115,9 +115,9 @@ namespace gr {
}
d_main_gui = new FreqDisplayForm(d_nconnections, d_parent);
- d_main_gui->SetFFTSize(d_fftsize);
- d_main_gui->SetFFTWindowType(d_wintype);
- d_main_gui->SetFrequencyRange(d_center_freq,
+ d_main_gui->setFFTSize(d_fftsize);
+ d_main_gui->setFFTWindowType(d_wintype);
+ d_main_gui->setFrequencyRange(d_center_freq,
d_center_freq - d_bandwidth/2.0,
d_center_freq + d_bandwidth/2.0);
@@ -150,7 +150,7 @@ namespace gr {
freq_sink_c_impl::set_fft_size(const int fftsize)
{
d_fftsize = fftsize;
- d_main_gui->SetFFTSize(fftsize);
+ d_main_gui->setFFTSize(fftsize);
}
int
@@ -163,7 +163,7 @@ namespace gr {
freq_sink_c_impl::set_fft_average(const float fftavg)
{
d_fftavg = fftavg;
- d_main_gui->SetFFTAverage(fftavg);
+ d_main_gui->setFFTAverage(fftavg);
}
float
@@ -178,15 +178,15 @@ namespace gr {
{
d_center_freq = centerfreq;
d_bandwidth = bandwidth;
- d_main_gui->SetFrequencyRange(d_center_freq,
+ d_main_gui->setFrequencyRange(d_center_freq,
-d_bandwidth/2.0,
d_bandwidth/2.0);
}
void
- freq_sink_c_impl::set_fft_power_db(double min, double max)
+ freq_sink_c_impl::set_y_axis(double min, double max)
{
- d_main_gui->SetFrequencyAxis(min, max);
+ d_main_gui->setYaxis(min, max);
}
void
@@ -199,15 +199,21 @@ namespace gr {
}
void
- freq_sink_c_impl::set_title(int which, const std::string &title)
+ freq_sink_c_impl::set_title(const std::string &title)
{
- d_main_gui->setTitle(which, title.c_str());
+ d_main_gui->setTitle(title.c_str());
}
void
- freq_sink_c_impl::set_color(int which, const std::string &color)
+ freq_sink_c_impl::set_line_label(int which, const std::string &label)
{
- d_main_gui->setColor(which, color.c_str());
+ d_main_gui->setLineLabel(which, label.c_str());
+ }
+
+ void
+ freq_sink_c_impl::set_line_color(int which, const std::string &color)
+ {
+ d_main_gui->setLineColor(which, color.c_str());
}
void
@@ -235,6 +241,12 @@ namespace gr {
}
void
+ freq_sink_c_impl::reset()
+ {
+ d_index = 0;
+ }
+
+ void
freq_sink_c_impl::fft(float *data_out, const gr_complex *data_in, int size)
{
if(d_window.size()) {
@@ -263,7 +275,7 @@ namespace gr {
freq_sink_c_impl::windowreset()
{
filter::firdes::win_type newwintype;
- newwintype = d_main_gui->GetFFTWindowType();
+ newwintype = d_main_gui->getFFTWindowType();
if(d_wintype != newwintype) {
d_wintype = newwintype;
buildwindow();
@@ -284,8 +296,8 @@ namespace gr {
{
gruel::scoped_lock lock(d_mutex);
- int newfftsize = d_main_gui->GetFFTSize();
- d_fftavg = d_main_gui->GetFFTAverage();
+ int newfftsize = d_main_gui->getFFTSize();
+ d_fftavg = d_main_gui->getFFTAverage();
if(newfftsize != d_fftsize) {
// Resize residbuf and replace data
diff --git a/gr-qtgui/lib/freq_sink_c_impl.h b/gr-qtgui/lib/freq_sink_c_impl.h
index 106e50497d..d162ab03bd 100644
--- a/gr-qtgui/lib/freq_sink_c_impl.h
+++ b/gr-qtgui/lib/freq_sink_c_impl.h
@@ -88,17 +88,20 @@ namespace gr {
float fft_average() const;
void set_frequency_range(const double centerfreq, const double bandwidth);
- void set_fft_power_db(double min, double max);
+ void set_y_axis(double min, double max);
void set_update_time(double t);
- void set_title(int which, const std::string &title);
- void set_color(int which, const std::string &color);
+ void set_title(const std::string &title);
+ void set_line_label(int which, const std::string &label);
+ void set_line_color(int which, const std::string &color);
void set_line_width(int which, int width);
void set_line_style(int which, Qt::PenStyle style);
void set_line_marker(int which, QwtSymbol::Style marker);
void set_size(int width, int height);
+ void reset();
+
int work(int noutput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items);
diff --git a/gr-qtgui/lib/freq_sink_f_impl.cc b/gr-qtgui/lib/freq_sink_f_impl.cc
index 2cf43e9994..c9ec1f52aa 100644
--- a/gr-qtgui/lib/freq_sink_f_impl.cc
+++ b/gr-qtgui/lib/freq_sink_f_impl.cc
@@ -115,9 +115,9 @@ namespace gr {
}
d_main_gui = new FreqDisplayForm(d_nconnections, d_parent);
- d_main_gui->SetFFTSize(d_fftsize);
- d_main_gui->SetFFTWindowType(d_wintype);
- d_main_gui->SetFrequencyRange(d_center_freq,
+ d_main_gui->setFFTSize(d_fftsize);
+ d_main_gui->setFFTWindowType(d_wintype);
+ d_main_gui->setFrequencyRange(d_center_freq,
d_center_freq - d_bandwidth/2.0,
d_center_freq + d_bandwidth/2.0);
@@ -150,7 +150,7 @@ namespace gr {
freq_sink_f_impl::set_fft_size(const int fftsize)
{
d_fftsize = fftsize;
- d_main_gui->SetFFTSize(fftsize);
+ d_main_gui->setFFTSize(fftsize);
}
int
@@ -163,7 +163,7 @@ namespace gr {
freq_sink_f_impl::set_fft_average(const float fftavg)
{
d_fftavg = fftavg;
- d_main_gui->SetFFTAverage(fftavg);
+ d_main_gui->setFFTAverage(fftavg);
}
float
@@ -178,15 +178,15 @@ namespace gr {
{
d_center_freq = centerfreq;
d_bandwidth = bandwidth;
- d_main_gui->SetFrequencyRange(d_center_freq,
+ d_main_gui->setFrequencyRange(d_center_freq,
-d_bandwidth/2.0,
d_bandwidth/2.0);
}
void
- freq_sink_f_impl::set_fft_power_db(double min, double max)
+ freq_sink_f_impl::set_y_axis(double min, double max)
{
- d_main_gui->SetFrequencyAxis(min, max);
+ d_main_gui->setYaxis(min, max);
}
void
@@ -199,15 +199,21 @@ namespace gr {
}
void
- freq_sink_f_impl::set_title(int which, const std::string &title)
+ freq_sink_f_impl::set_title(const std::string &title)
{
- d_main_gui->setTitle(which, title.c_str());
+ d_main_gui->setTitle(title.c_str());
}
void
- freq_sink_f_impl::set_color(int which, const std::string &color)
+ freq_sink_f_impl::set_line_label(int which, const std::string &label)
{
- d_main_gui->setColor(which, color.c_str());
+ d_main_gui->setLineLabel(which, label.c_str());
+ }
+
+ void
+ freq_sink_f_impl::set_line_color(int which, const std::string &color)
+ {
+ d_main_gui->setLineColor(which, color.c_str());
}
void
@@ -236,6 +242,12 @@ namespace gr {
}
void
+ freq_sink_f_impl::reset()
+ {
+ d_index = 0;
+ }
+
+ void
freq_sink_f_impl::fft(float *data_out, const float *data_in, int size)
{
// float to complex conversion
@@ -267,7 +279,7 @@ namespace gr {
gruel::scoped_lock lock(d_mutex);
filter::firdes::win_type newwintype;
- newwintype = d_main_gui->GetFFTWindowType();
+ newwintype = d_main_gui->getFFTWindowType();
if(d_wintype != newwintype) {
d_wintype = newwintype;
buildwindow();
@@ -288,8 +300,8 @@ namespace gr {
{
gruel::scoped_lock lock(d_mutex);
- int newfftsize = d_main_gui->GetFFTSize();
- d_fftavg = d_main_gui->GetFFTAverage();
+ int newfftsize = d_main_gui->getFFTSize();
+ d_fftavg = d_main_gui->getFFTAverage();
if(newfftsize != d_fftsize) {
// Resize residbuf and replace data
diff --git a/gr-qtgui/lib/freq_sink_f_impl.h b/gr-qtgui/lib/freq_sink_f_impl.h
index a358953629..ffb2c4bf59 100644
--- a/gr-qtgui/lib/freq_sink_f_impl.h
+++ b/gr-qtgui/lib/freq_sink_f_impl.h
@@ -88,17 +88,20 @@ namespace gr {
float fft_average() const;
void set_frequency_range(const double centerfreq, const double bandwidth);
- void set_fft_power_db(double min, double max);
+ void set_y_axis(double min, double max);
void set_update_time(double t);
- void set_title(int which, const std::string &title);
- void set_color(int which, const std::string &color);
+ void set_title(const std::string &title);
+ void set_line_label(int which, const std::string &label);
+ void set_line_color(int which, const std::string &color);
void set_line_width(int which, int width);
void set_line_style(int which, Qt::PenStyle style);
void set_line_marker(int which, QwtSymbol::Style marker);
void set_size(int width, int height);
+ void reset();
+
int work(int noutput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items);
diff --git a/gr-qtgui/lib/freqdisplayform.cc b/gr-qtgui/lib/freqdisplayform.cc
index 6f12fe5090..410bb4a048 100644
--- a/gr-qtgui/lib/freqdisplayform.cc
+++ b/gr-qtgui/lib/freqdisplayform.cc
@@ -47,11 +47,11 @@ FreqDisplayForm::FreqDisplayForm(int nplots, QWidget* parent)
_menu->addMenu(avgmenu);
_menu->addMenu(winmenu);
connect(sizemenu, SIGNAL(whichTrigger(int)),
- this, SLOT(SetFFTSize(const int)));
+ this, SLOT(setFFTSize(const int)));
connect(avgmenu, SIGNAL(whichTrigger(float)),
- this, SLOT(SetFFTAverage(const float)));
+ this, SLOT(setFFTAverage(const float)));
connect(winmenu, SIGNAL(whichTrigger(gr::filter::firdes::win_type)),
- this, SLOT(SetFFTWindowType(const gr::filter::firdes::win_type)));
+ this, SLOT(setFFTWindowType(const gr::filter::firdes::win_type)));
Reset();
@@ -93,44 +93,44 @@ FreqDisplayForm::customEvent( QEvent * e)
}
int
-FreqDisplayForm::GetFFTSize() const
+FreqDisplayForm::getFFTSize() const
{
return _fftsize;
}
float
-FreqDisplayForm::GetFFTAverage() const
+FreqDisplayForm::getFFTAverage() const
{
return _fftavg;
}
gr::filter::firdes::win_type
-FreqDisplayForm::GetFFTWindowType() const
+FreqDisplayForm::getFFTWindowType() const
{
return _fftwintype;
}
void
-FreqDisplayForm::SetFFTSize(const int newsize)
+FreqDisplayForm::setFFTSize(const int newsize)
{
_fftsize = newsize;
}
void
-FreqDisplayForm::SetFFTAverage(const float newavg)
+FreqDisplayForm::setFFTAverage(const float newavg)
{
_fftavg = newavg;
getPlot()->replot();
}
void
-FreqDisplayForm::SetFFTWindowType(const gr::filter::firdes::win_type newwin)
+FreqDisplayForm::setFFTWindowType(const gr::filter::firdes::win_type newwin)
{
_fftwintype = newwin;
}
void
-FreqDisplayForm::SetFrequencyRange(const double newCenterFrequency,
+FreqDisplayForm::setFrequencyRange(const double newCenterFrequency,
const double newStartFrequency,
const double newStopFrequency)
{
@@ -156,7 +156,7 @@ FreqDisplayForm::SetFrequencyRange(const double newCenterFrequency,
}
void
-FreqDisplayForm::SetFrequencyAxis(double min, double max)
+FreqDisplayForm::setYaxis(double min, double max)
{
- getPlot()->set_yaxis(min, max);
+ getPlot()->setYaxis(min, max);
}
diff --git a/gr-qtgui/lib/freqdisplayform.h b/gr-qtgui/lib/freqdisplayform.h
index ffce317c4f..4a7fc7d2e5 100644
--- a/gr-qtgui/lib/freqdisplayform.h
+++ b/gr-qtgui/lib/freqdisplayform.h
@@ -41,21 +41,21 @@ class FreqDisplayForm : public DisplayForm
FrequencyDisplayPlot* getPlot();
- int GetFFTSize() const;
- float GetFFTAverage() const;
- gr::filter::firdes::win_type GetFFTWindowType() const;
+ int getFFTSize() const;
+ float getFFTAverage() const;
+ gr::filter::firdes::win_type getFFTWindowType() const;
public slots:
void customEvent(QEvent *e);
- void SetFFTSize(const int);
- void SetFFTAverage(const float);
- void SetFFTWindowType(const gr::filter::firdes::win_type);
+ void setFFTSize(const int);
+ void setFFTAverage(const float);
+ void setFFTWindowType(const gr::filter::firdes::win_type);
- void SetFrequencyRange(const double newCenterFrequency,
+ void setFrequencyRange(const double newCenterFrequency,
const double newStartFrequency,
const double newStopFrequency);
- void SetFrequencyAxis(double min, double max);
+ void setYaxis(double min, double max);
private slots:
void newData(const QEvent *updateEvent);
diff --git a/gr-qtgui/lib/spectrumdisplayform.cc b/gr-qtgui/lib/spectrumdisplayform.cc
index 6de6caa1b1..93853cead1 100644
--- a/gr-qtgui/lib/spectrumdisplayform.cc
+++ b/gr-qtgui/lib/spectrumdisplayform.cc
@@ -43,8 +43,8 @@ SpectrumDisplayForm::SpectrumDisplayForm(QWidget* parent)
_averagedValues = new double[_numRealDataPoints];
_historyVector = new std::vector<double*>;
- _timeDomainDisplayPlot->setTitle(0, "real");
- _timeDomainDisplayPlot->setTitle(1, "imag");
+ _timeDomainDisplayPlot->setLineLabel(0, "real");
+ _timeDomainDisplayPlot->setLineLabel(1, "imag");
AvgLineEdit->setRange(0, 500); // Set range of Average box value from 0 to 500
MinHoldCheckBox_toggled( false );
@@ -729,7 +729,7 @@ SpectrumDisplayForm::SetConstellationPenSize(int size)
void
SpectrumDisplayForm::SetFrequencyAxis(double min, double max)
{
- _frequencyDisplayPlot->set_yaxis(min, max);
+ _frequencyDisplayPlot->setYaxis(min, max);
}
void
diff --git a/gr-qtgui/lib/time_sink_c_impl.cc b/gr-qtgui/lib/time_sink_c_impl.cc
index 83ab76eb6e..c8efb63721 100644
--- a/gr-qtgui/lib/time_sink_c_impl.cc
+++ b/gr-qtgui/lib/time_sink_c_impl.cc
@@ -34,23 +34,23 @@ namespace gr {
namespace qtgui {
time_sink_c::sptr
- time_sink_c::make(int size, double bw,
+ time_sink_c::make(int size, double samp_rate,
const std::string &name,
int nconnections,
QWidget *parent)
{
return gnuradio::get_initial_sptr
- (new time_sink_c_impl(size, bw, name, nconnections, parent));
+ (new time_sink_c_impl(size, samp_rate, name, nconnections, parent));
}
- time_sink_c_impl::time_sink_c_impl(int size, double bw,
+ time_sink_c_impl::time_sink_c_impl(int size, double samp_rate,
const std::string &name,
int nconnections,
QWidget *parent)
: gr_sync_block("time_sink_c",
gr_make_io_signature(nconnections, nconnections, sizeof(gr_complex)),
gr_make_io_signature(0, 0, 0)),
- d_size(size), d_bandwidth(bw), d_name(name),
+ d_size(size), d_samp_rate(samp_rate), d_name(name),
d_nconnections(2*nconnections), d_parent(parent)
{
d_main_gui = NULL;
@@ -91,7 +91,8 @@ namespace gr {
}
d_main_gui = new TimeDisplayForm(d_nconnections, d_parent);
- d_main_gui->SetNPoints(d_size);
+ d_main_gui->setNPoints(d_size);
+ d_main_gui->setSampleRate(d_samp_rate);
// initialize update time to 10 times a second
set_update_time(0.1);
@@ -119,9 +120,9 @@ namespace gr {
}
void
- time_sink_c_impl::set_time_domain_axis(double min, double max)
+ time_sink_c_impl::set_y_axis(double min, double max)
{
- d_main_gui->setTimeDomainAxis(min, max);
+ d_main_gui->setYaxis(min, max);
}
void
@@ -134,15 +135,21 @@ namespace gr {
}
void
- time_sink_c_impl::set_title(int which, const std::string &title)
+ time_sink_c_impl::set_title(const std::string &title)
{
- d_main_gui->setTitle(which, title.c_str());
+ d_main_gui->setTitle(title.c_str());
}
void
- time_sink_c_impl::set_color(int which, const std::string &color)
+ time_sink_c_impl::set_line_label(int which, const std::string &label)
{
- d_main_gui->setColor(which, color.c_str());
+ d_main_gui->setLineLabel(which, label.c_str());
+ }
+
+ void
+ time_sink_c_impl::set_line_color(int which, const std::string &color)
+ {
+ d_main_gui->setLineColor(which, color.c_str());
}
void
@@ -188,18 +195,38 @@ namespace gr {
d_size = newsize;
d_index = 0;
- d_main_gui->SetNPoints(d_size);
+ d_main_gui->setNPoints(d_size);
}
}
void
+ time_sink_c_impl::set_samp_rate(const double samp_rate)
+ {
+ gruel::scoped_lock lock(d_mutex);
+ d_samp_rate = samp_rate;
+ d_main_gui->setSampleRate(d_samp_rate);
+ }
+
+ void
time_sink_c_impl::npoints_resize()
{
- int newsize = d_main_gui->GetNPoints();
+ int newsize = d_main_gui->getNPoints();
set_nsamps(newsize);
}
int
+ time_sink_c_impl::nsamps() const
+ {
+ return d_size;
+ }
+
+ void
+ time_sink_c_impl::reset()
+ {
+ d_index = 0;
+ }
+
+ int
time_sink_c_impl::work(int noutput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items)
diff --git a/gr-qtgui/lib/time_sink_c_impl.h b/gr-qtgui/lib/time_sink_c_impl.h
index 0cace14890..66980dd79e 100644
--- a/gr-qtgui/lib/time_sink_c_impl.h
+++ b/gr-qtgui/lib/time_sink_c_impl.h
@@ -39,7 +39,7 @@ namespace gr {
gruel::mutex d_mutex;
int d_size;
- double d_bandwidth;
+ double d_samp_rate;
std::string d_name;
int d_nconnections;
@@ -55,7 +55,7 @@ namespace gr {
void npoints_resize();
public:
- time_sink_c_impl(int size, double bw,
+ time_sink_c_impl(int size, double samp_rate,
const std::string &name,
int nconnections,
QWidget *parent=NULL);
@@ -65,17 +65,23 @@ namespace gr {
QWidget* qwidget();
PyObject* pyqwidget();
- void set_time_domain_axis(double min, double max);
+ void set_y_axis(double min, double max);
void set_update_time(double t);
- void set_title(int which, const std::string &title);
- void set_color(int which, const std::string &color);
+ void set_title(const std::string &title);
+ void set_line_label(int which, const std::string &label);
+ void set_line_color(int which, const std::string &color);
void set_line_width(int which, int width);
void set_line_style(int which, Qt::PenStyle style);
void set_line_marker(int which, QwtSymbol::Style marker);
void set_nsamps(const int size);
+ void set_samp_rate(const double samp_rate);
void set_size(int width, int height);
+ int nsamps() const;
+
+ void reset();
+
int work(int noutput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items);
diff --git a/gr-qtgui/lib/time_sink_f_impl.cc b/gr-qtgui/lib/time_sink_f_impl.cc
index 4b965b648c..562da3ef86 100644
--- a/gr-qtgui/lib/time_sink_f_impl.cc
+++ b/gr-qtgui/lib/time_sink_f_impl.cc
@@ -34,23 +34,23 @@ namespace gr {
namespace qtgui {
time_sink_f::sptr
- time_sink_f::make(int size, double bw,
+ time_sink_f::make(int size, double samp_rate,
const std::string &name,
int nconnections,
QWidget *parent)
{
return gnuradio::get_initial_sptr
- (new time_sink_f_impl(size, bw, name, nconnections, parent));
+ (new time_sink_f_impl(size, samp_rate, name, nconnections, parent));
}
- time_sink_f_impl::time_sink_f_impl(int size, double bw,
+ time_sink_f_impl::time_sink_f_impl(int size, double samp_rate,
const std::string &name,
int nconnections,
QWidget *parent)
: gr_sync_block("time_sink_f",
gr_make_io_signature(nconnections, nconnections, sizeof(float)),
gr_make_io_signature(0, 0, 0)),
- d_size(size), d_bandwidth(bw), d_name(name),
+ d_size(size), d_samp_rate(samp_rate), d_name(name),
d_nconnections(nconnections), d_parent(parent)
{
d_main_gui = NULL;
@@ -91,7 +91,8 @@ namespace gr {
}
d_main_gui = new TimeDisplayForm(d_nconnections, d_parent);
- d_main_gui->SetNPoints(d_size);
+ d_main_gui->setNPoints(d_size);
+ d_main_gui->setSampleRate(d_samp_rate);
// initialize update time to 10 times a second
set_update_time(0.1);
@@ -119,9 +120,9 @@ namespace gr {
}
void
- time_sink_f_impl::set_time_domain_axis(double min, double max)
+ time_sink_f_impl::set_y_axis(double min, double max)
{
- d_main_gui->setTimeDomainAxis(min, max);
+ d_main_gui->setYaxis(min, max);
}
void
@@ -134,15 +135,21 @@ namespace gr {
}
void
- time_sink_f_impl::set_title(int which, const std::string &title)
+ time_sink_f_impl::set_title(const std::string &title)
{
- d_main_gui->setTitle(which, title.c_str());
+ d_main_gui->setTitle(title.c_str());
}
void
- time_sink_f_impl::set_color(int which, const std::string &color)
+ time_sink_f_impl::set_line_label(int which, const std::string &label)
{
- d_main_gui->setColor(which, color.c_str());
+ d_main_gui->setLineLabel(which, label.c_str());
+ }
+
+ void
+ time_sink_f_impl::set_line_color(int which, const std::string &color)
+ {
+ d_main_gui->setLineColor(which, color.c_str());
}
void
@@ -188,17 +195,37 @@ namespace gr {
d_size = newsize;
d_index = 0;
- d_main_gui->SetNPoints(d_size);
+ d_main_gui->setNPoints(d_size);
}
}
void
+ time_sink_f_impl::set_samp_rate(const double samp_rate)
+ {
+ gruel::scoped_lock lock(d_mutex);
+ d_samp_rate = samp_rate;
+ d_main_gui->setSampleRate(d_samp_rate);
+ }
+
+ int
+ time_sink_f_impl::nsamps() const
+ {
+ return d_size;
+ }
+
+ void
time_sink_f_impl::npoints_resize()
{
- int newsize = d_main_gui->GetNPoints();
+ int newsize = d_main_gui->getNPoints();
set_nsamps(newsize);
}
+ void
+ time_sink_f_impl::reset()
+ {
+ d_index = 0;
+ }
+
int
time_sink_f_impl::work(int noutput_items,
gr_vector_const_void_star &input_items,
diff --git a/gr-qtgui/lib/time_sink_f_impl.h b/gr-qtgui/lib/time_sink_f_impl.h
index 69c07fbdab..dd1dd6f699 100644
--- a/gr-qtgui/lib/time_sink_f_impl.h
+++ b/gr-qtgui/lib/time_sink_f_impl.h
@@ -39,7 +39,7 @@ namespace gr {
gruel::mutex d_mutex;
int d_size;
- double d_bandwidth;
+ double d_samp_rate;
std::string d_name;
int d_nconnections;
@@ -55,7 +55,7 @@ namespace gr {
void npoints_resize();
public:
- time_sink_f_impl(int size, double bw,
+ time_sink_f_impl(int size, double samp_rate,
const std::string &name,
int nconnections,
QWidget *parent=NULL);
@@ -65,17 +65,23 @@ namespace gr {
QWidget* qwidget();
PyObject* pyqwidget();
- void set_time_domain_axis(double min, double max);
+ void set_y_axis(double min, double max);
void set_update_time(double t);
- void set_title(int which, const std::string &title);
- void set_color(int which, const std::string &color);
+ void set_title(const std::string &title);
+ void set_line_label(int which, const std::string &label);
+ void set_line_color(int which, const std::string &color);
void set_line_width(int which, int width);
void set_line_style(int which, Qt::PenStyle style);
void set_line_marker(int which, QwtSymbol::Style marker);
void set_nsamps(const int newsize);
+ void set_samp_rate(const double samp_rate);
void set_size(int width, int height);
+ int nsamps() const;
+
+ void reset();
+
int work(int noutput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items);
diff --git a/gr-qtgui/lib/timedisplayform.cc b/gr-qtgui/lib/timedisplayform.cc
index 3d94d20094..e3c7f8a60b 100644
--- a/gr-qtgui/lib/timedisplayform.cc
+++ b/gr-qtgui/lib/timedisplayform.cc
@@ -39,7 +39,7 @@ TimeDisplayForm::TimeDisplayForm(int nplots, QWidget* parent)
NPointsMenu *nptsmenu = new NPointsMenu(this);
_menu->addAction(nptsmenu);
connect(nptsmenu, SIGNAL(whichTrigger(int)),
- this, SLOT(SetNPoints(const int)));
+ this, SLOT(setNPoints(const int)));
Reset();
@@ -82,41 +82,36 @@ TimeDisplayForm::customEvent(QEvent * e)
}
void
-TimeDisplayForm::setFrequencyRange(const double newCenterFrequency,
- const double newStartFrequency,
- const double newStopFrequency)
+TimeDisplayForm::setSampleRate(const double samprate)
{
- double fdiff = std::max(fabs(newStartFrequency), fabs(newStopFrequency));
-
- if(fdiff > 0) {
+ if(samprate > 0) {
std::string strtime[4] = {"sec", "ms", "us", "ns"};
- double units10 = floor(log10(fdiff));
+ double units10 = floor(log10(samprate));
double units3 = std::max(floor(units10 / 3.0), 0.0);
double units = pow(10, (units10-fmod(units10, 3.0)));
int iunit = static_cast<int>(units3);
- _startFrequency = newStartFrequency;
- _stopFrequency = newStopFrequency;
-
- getPlot()->SetSampleRate(_stopFrequency - _startFrequency,
- units, strtime[iunit]);
+ getPlot()->SetSampleRate(samprate, units, strtime[iunit]);
+ }
+ else {
+ throw std::runtime_error("TimeDisplayForm: samprate must be > 0.\n");
}
}
void
-TimeDisplayForm::setTimeDomainAxis(double min, double max)
+TimeDisplayForm::setYaxis(double min, double max)
{
getPlot()->setYaxis(min, max);
}
int
-TimeDisplayForm::GetNPoints() const
+TimeDisplayForm::getNPoints() const
{
return d_npoints;
}
void
-TimeDisplayForm::SetNPoints(const int npoints)
+TimeDisplayForm::setNPoints(const int npoints)
{
d_npoints = npoints;
}
diff --git a/gr-qtgui/lib/timedisplayform.h b/gr-qtgui/lib/timedisplayform.h
index 806fc4053f..df8803c145 100644
--- a/gr-qtgui/lib/timedisplayform.h
+++ b/gr-qtgui/lib/timedisplayform.h
@@ -40,16 +40,14 @@ class TimeDisplayForm : public DisplayForm
TimeDomainDisplayPlot* getPlot();
- int GetNPoints() const;
+ int getNPoints() const;
public slots:
void customEvent(QEvent * e);
- void setFrequencyRange(const double newCenterFrequency,
- const double newStartFrequency,
- const double newStopFrequency);
- void setTimeDomainAxis(double min, double max);
- void SetNPoints(const int);
+ void setSampleRate(const double samprate);
+ void setYaxis(double min, double max);
+ void setNPoints(const int);
private slots:
void newData(const QEvent*);
diff --git a/gr-qtgui/lib/waterfall_sink_c_impl.cc b/gr-qtgui/lib/waterfall_sink_c_impl.cc
index 0611d37974..7659394e77 100644
--- a/gr-qtgui/lib/waterfall_sink_c_impl.cc
+++ b/gr-qtgui/lib/waterfall_sink_c_impl.cc
@@ -191,13 +191,19 @@ namespace gr {
void
waterfall_sink_c_impl::set_title(const std::string &title)
{
- d_main_gui->setTitle(0, title.c_str());
+ d_main_gui->setTitle(title.c_str());
}
void
- waterfall_sink_c_impl::set_color(const std::string &color)
+ waterfall_sink_c_impl::set_line_label(const std::string &label)
{
- d_main_gui->setColor(0, color.c_str());
+ d_main_gui->setLineLabel(0, label.c_str());
+ }
+
+ void
+ waterfall_sink_c_impl::set_line_color(const std::string &color)
+ {
+ d_main_gui->setLineColor(0, color.c_str());
}
void
diff --git a/gr-qtgui/lib/waterfall_sink_c_impl.h b/gr-qtgui/lib/waterfall_sink_c_impl.h
index b51b1e66eb..ea9ae9736b 100644
--- a/gr-qtgui/lib/waterfall_sink_c_impl.h
+++ b/gr-qtgui/lib/waterfall_sink_c_impl.h
@@ -88,7 +88,8 @@ namespace gr {
void set_update_time(double t);
void set_title(const std::string &title);
- void set_color(const std::string &color);
+ void set_line_label(const std::string &label);
+ void set_line_color(const std::string &color);
void set_line_width(int width);
void set_line_style(Qt::PenStyle style);
void set_line_marker(QwtSymbol::Style marker);
diff --git a/gr-qtgui/lib/waterfall_sink_f_impl.cc b/gr-qtgui/lib/waterfall_sink_f_impl.cc
index 3fdb2b795a..0e8a4dd3da 100644
--- a/gr-qtgui/lib/waterfall_sink_f_impl.cc
+++ b/gr-qtgui/lib/waterfall_sink_f_impl.cc
@@ -191,13 +191,19 @@ namespace gr {
void
waterfall_sink_f_impl::set_title(const std::string &title)
{
- d_main_gui->setTitle(0, title.c_str());
+ d_main_gui->setTitle(title.c_str());
}
void
- waterfall_sink_f_impl::set_color(const std::string &color)
+ waterfall_sink_f_impl::set_line_label(const std::string &label)
{
- d_main_gui->setColor(0, color.c_str());
+ d_main_gui->setLineLabel(0, label.c_str());
+ }
+
+ void
+ waterfall_sink_f_impl::set_line_color(const std::string &color)
+ {
+ d_main_gui->setLineColor(0, color.c_str());
}
void
diff --git a/gr-qtgui/lib/waterfall_sink_f_impl.h b/gr-qtgui/lib/waterfall_sink_f_impl.h
index 684e1dfb03..f0c4badb60 100644
--- a/gr-qtgui/lib/waterfall_sink_f_impl.h
+++ b/gr-qtgui/lib/waterfall_sink_f_impl.h
@@ -89,7 +89,8 @@ namespace gr {
void set_update_time(double t);
void set_title(const std::string &title);
- void set_color(const std::string &color);
+ void set_line_label(const std::string &label);
+ void set_line_color(const std::string &color);
void set_line_width(int width);
void set_line_style(Qt::PenStyle style);
void set_line_marker(QwtSymbol::Style marker);
diff --git a/gr-qtgui/python/CMakeLists.txt b/gr-qtgui/python/CMakeLists.txt
index e3fd602ef2..e57338073c 100644
--- a/gr-qtgui/python/CMakeLists.txt
+++ b/gr-qtgui/python/CMakeLists.txt
@@ -41,6 +41,6 @@ foreach(py_qa_test_file ${py_qa_test_files})
${CMAKE_BINARY_DIR}/gr-qtgui/swig
)
set(GR_TEST_TARGET_DEPS volk gruel gnuradio-core gnuradio-qtgui)
- GR_ADD_TEST(${py_qa_test_name} ${PYTHON_EXECUTABLE} ${py_qa_test_file})
+ GR_ADD_TEST(${py_qa_test_name} ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B} ${py_qa_test_file})
endforeach(py_qa_test_file)
endif(ENABLE_TESTING)