commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] [gnuradio] 17/37: qtgui: allows users to set title and


From: git
Subject: [Commit-gnuradio] [gnuradio] 17/37: qtgui: allows users to set title and unit of Y axis for qt time plotter.
Date: Thu, 17 Jul 2014 20:23:41 +0000 (UTC)

This is an automated email from the git hooks/post-receive script.

trondeau pushed a commit to branch master
in repository gnuradio.

commit ded480efed91be8fa80938c0ea5474990e2f7302
Author: Tom Rondeau <address@hidden>
Date:   Fri Jul 11 15:56:45 2014 -0400

    qtgui: allows users to set title and unit of Y axis for qt time plotter.
---
 gr-qtgui/grc/qtgui_time_sink_x.xml                 | 19 +++++++++++++
 .../include/gnuradio/qtgui/TimeDomainDisplayPlot.h |  3 +++
 gr-qtgui/include/gnuradio/qtgui/time_sink_c.h      |  2 ++
 gr-qtgui/include/gnuradio/qtgui/time_sink_f.h      |  2 ++
 gr-qtgui/include/gnuradio/qtgui/timedisplayform.h  |  2 ++
 gr-qtgui/lib/TimeDomainDisplayPlot.cc              | 31 +++++++++++++++++-----
 gr-qtgui/lib/time_sink_c_impl.cc                   |  7 +++++
 gr-qtgui/lib/time_sink_c_impl.h                    |  2 ++
 gr-qtgui/lib/time_sink_f_impl.cc                   |  7 +++++
 gr-qtgui/lib/time_sink_f_impl.h                    |  2 ++
 gr-qtgui/lib/timedisplayform.cc                    |  8 +++++-
 11 files changed, 78 insertions(+), 7 deletions(-)

diff --git a/gr-qtgui/grc/qtgui_time_sink_x.xml 
b/gr-qtgui/grc/qtgui_time_sink_x.xml
index c605a0a..2d1cc65 100644
--- a/gr-qtgui/grc/qtgui_time_sink_x.xml
+++ b/gr-qtgui/grc/qtgui_time_sink_x.xml
@@ -20,6 +20,9 @@ qtgui.$(type.fcn)(
 )
 self.$(id).set_update_time($update_time)
 self.$(id).set_y_axis($ymin, $ymax)
+
+self.$(id).set_y_label($ylabel, $yunit)
+
 self.$(id).enable_tags(-1, $entags)
 self.$(id).set_trigger_mode($tr_mode, $tr_slope, $tr_level, $tr_delay, 
$tr_chan, $tr_tag)
 self.$(id).enable_autoscale($autoscale)
@@ -98,6 +101,22 @@ $(gui_hint()($win))</make>
   </param>
 
   <param>
+    <name>Y Axis Label</name>
+    <key>ylabel</key>
+    <value>Amplitude</value>
+    <type>string</type>
+    <hide>part</hide>
+  </param>
+
+  <param>
+    <name>Y Axis Unit</name>
+    <key>yunit</key>
+    <value>""</value>
+    <type>string</type>
+    <hide>part</hide>
+  </param>
+
+  <param>
     <name>Number of Points</name>
     <key>size</key>
     <value>1024</value>
diff --git a/gr-qtgui/include/gnuradio/qtgui/TimeDomainDisplayPlot.h 
b/gr-qtgui/include/gnuradio/qtgui/TimeDomainDisplayPlot.h
index 8874a7e..81601ce 100644
--- a/gr-qtgui/include/gnuradio/qtgui/TimeDomainDisplayPlot.h
+++ b/gr-qtgui/include/gnuradio/qtgui/TimeDomainDisplayPlot.h
@@ -63,6 +63,9 @@ public slots:
 
   void enableTagMarker(int which, bool en);
 
+  void setYLabel(const std::string &label,
+                 const std::string &unit="");
+
 private:
   void _resetXAxisPoints();
   void _autoScale(double bottom, double top);
diff --git a/gr-qtgui/include/gnuradio/qtgui/time_sink_c.h 
b/gr-qtgui/include/gnuradio/qtgui/time_sink_c.h
index 8ce6e2e..84a8a4d 100644
--- a/gr-qtgui/include/gnuradio/qtgui/time_sink_c.h
+++ b/gr-qtgui/include/gnuradio/qtgui/time_sink_c.h
@@ -78,6 +78,8 @@ namespace gr {
 #endif
 
       virtual void set_y_axis(double min, double max) = 0;
+      virtual void set_y_label(const std::string &label,
+                               const std::string &unit="") = 0;
       virtual void set_update_time(double t) = 0;
       virtual void set_title(const std::string &title) = 0;
       virtual void set_line_label(int which, const std::string &label) = 0;
diff --git a/gr-qtgui/include/gnuradio/qtgui/time_sink_f.h 
b/gr-qtgui/include/gnuradio/qtgui/time_sink_f.h
index 1a09492..b39c898 100644
--- a/gr-qtgui/include/gnuradio/qtgui/time_sink_f.h
+++ b/gr-qtgui/include/gnuradio/qtgui/time_sink_f.h
@@ -76,6 +76,8 @@ namespace gr {
 #endif
 
       virtual void set_y_axis(double min, double max) = 0;
+      virtual void set_y_label(const std::string &label,
+                               const std::string &unit="") = 0;
       virtual void set_update_time(double t) = 0;
       virtual void set_title(const std::string &title) = 0;
       virtual void set_line_label(int which, const std::string &line) = 0;
diff --git a/gr-qtgui/include/gnuradio/qtgui/timedisplayform.h 
b/gr-qtgui/include/gnuradio/qtgui/timedisplayform.h
index 7e09e3c..e52e28c 100644
--- a/gr-qtgui/include/gnuradio/qtgui/timedisplayform.h
+++ b/gr-qtgui/include/gnuradio/qtgui/timedisplayform.h
@@ -58,6 +58,8 @@ public slots:
   void setSampleRate(const double samprate);
   void setSampleRate(const QString &samprate);
   void setYaxis(double min, double max);
+  void setYLabel(const std::string &label,
+                 const std::string &unit="");
   void setNPoints(const int);
   void setStem(bool en);
   void autoScale(bool en);
diff --git a/gr-qtgui/lib/TimeDomainDisplayPlot.cc 
b/gr-qtgui/lib/TimeDomainDisplayPlot.cc
index 8c0601a..3fc5924 100644
--- a/gr-qtgui/lib/TimeDomainDisplayPlot.cc
+++ b/gr-qtgui/lib/TimeDomainDisplayPlot.cc
@@ -66,7 +66,7 @@ public:
 #else /* QWT_VERSION < 0x060100 */
   TimeDomainDisplayZoomer(QWidget* canvas, const unsigned int timePrecision)
 #endif /* QWT_VERSION < 0x060100 */
-    : QwtPlotZoomer(canvas),TimePrecisionClass(timePrecision)
+  : QwtPlotZoomer(canvas),TimePrecisionClass(timePrecision),d_yUnitType("V")
   {
     setTrackerMode(QwtPicker::AlwaysOn);
   }
@@ -85,23 +85,30 @@ public:
     d_unitType = type;
   }
 
+  void setYUnitType(const std::string &type)
+  {
+    d_yUnitType = type;
+  }
+
 protected:
   using QwtPlotZoomer::trackerText;
   virtual QwtText trackerText( const QPoint& p ) const
   {
     QwtText t;
     QwtDoublePoint dp = QwtPlotZoomer::invTransform(p);
-    if((dp.y() > 0.0001) && (dp.y() < 10000)) {
-      t.setText(QString("%1 %2, %3 V").
+    if((fabs(dp.y()) > 0.0001) && (fabs(dp.y()) < 10000)) {
+      t.setText(QString("%1 %2, %3 %4").
                arg(dp.x(), 0, 'f', getTimePrecision()).
                arg(d_unitType.c_str()).
-               arg(dp.y(), 0, 'f', 4));
+               arg(dp.y(), 0, 'f', 4).
+               arg(d_yUnitType.c_str()));
     }
     else {
-      t.setText(QString("%1 %2, %3 V").
+      t.setText(QString("%1 %2, %3 %4").
                arg(dp.x(), 0, 'f', getTimePrecision()).
                arg(d_unitType.c_str()).
-               arg(dp.y(), 0, 'e', 4));
+               arg(dp.y(), 0, 'e', 4).
+               arg(d_yUnitType.c_str()));
     }
 
     return t;
@@ -109,6 +116,7 @@ protected:
 
 private:
   std::string d_unitType;
+  std::string d_yUnitType;
 };
 
 
@@ -550,4 +558,15 @@ TimeDomainDisplayPlot::enableTagMarker(int which, bool en)
     throw std::runtime_error("TimeDomainDisplayPlot: enabled tag marker does 
not exist.\n");
 }
 
+void
+TimeDomainDisplayPlot::setYLabel(const std::string &label,
+                                 const std::string &unit)
+{
+  std::string l = label;
+  if(unit.length() > 0)
+    l += " (" + unit + ")";
+  setAxisTitle(QwtPlot::yLeft, QString(l.c_str()));
+  ((TimeDomainDisplayZoomer*)d_zoomer)->setYUnitType(unit);
+}
+
 #endif /* TIME_DOMAIN_DISPLAY_PLOT_C */
diff --git a/gr-qtgui/lib/time_sink_c_impl.cc b/gr-qtgui/lib/time_sink_c_impl.cc
index e053806..8653f71 100644
--- a/gr-qtgui/lib/time_sink_c_impl.cc
+++ b/gr-qtgui/lib/time_sink_c_impl.cc
@@ -171,6 +171,13 @@ namespace gr {
     }
 
     void
+    time_sink_c_impl::set_y_label(const std::string &label,
+                                  const std::string &unit)
+    {
+      d_main_gui->setYLabel(label, unit);
+    }
+
+    void
     time_sink_c_impl::set_update_time(double t)
     {
       //convert update time to ticks
diff --git a/gr-qtgui/lib/time_sink_c_impl.h b/gr-qtgui/lib/time_sink_c_impl.h
index c3c5bde..a793df5 100644
--- a/gr-qtgui/lib/time_sink_c_impl.h
+++ b/gr-qtgui/lib/time_sink_c_impl.h
@@ -93,6 +93,8 @@ namespace gr {
 #endif
 
       void set_y_axis(double min, double max);
+      void set_y_label(const std::string &label,
+                       const std::string &unit="");
       void set_update_time(double t);
       void set_title(const std::string &title);
       void set_line_label(int which, const std::string &label);
diff --git a/gr-qtgui/lib/time_sink_f_impl.cc b/gr-qtgui/lib/time_sink_f_impl.cc
index 8424702..30e6df1 100644
--- a/gr-qtgui/lib/time_sink_f_impl.cc
+++ b/gr-qtgui/lib/time_sink_f_impl.cc
@@ -173,6 +173,13 @@ namespace gr {
     }
 
     void
+    time_sink_f_impl::set_y_label(const std::string &label,
+                                  const std::string &unit)
+    {
+      d_main_gui->setYLabel(label, unit);
+    }
+
+    void
     time_sink_f_impl::set_update_time(double t)
     {
       //convert update time to ticks
diff --git a/gr-qtgui/lib/time_sink_f_impl.h b/gr-qtgui/lib/time_sink_f_impl.h
index 32e860a..7f56fa0 100644
--- a/gr-qtgui/lib/time_sink_f_impl.h
+++ b/gr-qtgui/lib/time_sink_f_impl.h
@@ -93,6 +93,8 @@ namespace gr {
 #endif
 
       void set_y_axis(double min, double max);
+      void set_y_label(const std::string &label,
+                       const std::string &unit="");
       void set_update_time(double t);
       void set_title(const std::string &title);
       void set_line_label(int which, const std::string &label);
diff --git a/gr-qtgui/lib/timedisplayform.cc b/gr-qtgui/lib/timedisplayform.cc
index f666946..6d1deba 100644
--- a/gr-qtgui/lib/timedisplayform.cc
+++ b/gr-qtgui/lib/timedisplayform.cc
@@ -186,6 +186,13 @@ TimeDisplayForm::setYaxis(double min, double max)
   getPlot()->setYaxis(min, max);
 }
 
+void
+TimeDisplayForm::setYLabel(const std::string &label,
+                           const std::string &unit)
+{
+  getPlot()->setYLabel(label, unit);
+}
+
 int
 TimeDisplayForm::getNPoints() const
 {
@@ -362,4 +369,3 @@ TimeDisplayForm::getTriggerTagKey() const
 {
   return d_trig_tag_key;
 }
-



reply via email to

[Prev in Thread] Current Thread [Next in Thread]