commit-gnuradio
[Top][All Lists]
Advanced

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

[Commit-gnuradio] r5704 - gnuradio/branches/features/ofdm/sync/gnuradio-


From: trondeau
Subject: [Commit-gnuradio] r5704 - gnuradio/branches/features/ofdm/sync/gnuradio-core/src/lib/general
Date: Tue, 5 Jun 2007 22:39:26 -0600 (MDT)

Author: trondeau
Date: 2007-06-05 22:39:25 -0600 (Tue, 05 Jun 2007)
New Revision: 5704

Modified:
   
gnuradio/branches/features/ofdm/sync/gnuradio-core/src/lib/general/gr_regenerate_bb.cc
   
gnuradio/branches/features/ofdm/sync/gnuradio-core/src/lib/general/gr_regenerate_bb.h
   
gnuradio/branches/features/ofdm/sync/gnuradio-core/src/lib/general/gr_regenerate_bb.i
Log:
Added a time-out state to the regenerator to stop sending signals after 
max_regen have been sent without a new input.

Modified: 
gnuradio/branches/features/ofdm/sync/gnuradio-core/src/lib/general/gr_regenerate_bb.cc
===================================================================
--- 
gnuradio/branches/features/ofdm/sync/gnuradio-core/src/lib/general/gr_regenerate_bb.cc
      2007-06-06 04:38:39 UTC (rev 5703)
+++ 
gnuradio/branches/features/ofdm/sync/gnuradio-core/src/lib/general/gr_regenerate_bb.cc
      2007-06-06 04:39:25 UTC (rev 5704)
@@ -28,16 +28,18 @@
 #include <gr_io_signature.h>
 
 gr_regenerate_bb_sptr
-gr_make_regenerate_bb (int period)
+gr_make_regenerate_bb (int period, unsigned int max_regen)
 {
-  return gr_regenerate_bb_sptr (new gr_regenerate_bb (period));
+  return gr_regenerate_bb_sptr (new gr_regenerate_bb (period, max_regen));
 }
 
-gr_regenerate_bb::gr_regenerate_bb (int period)
+gr_regenerate_bb::gr_regenerate_bb (int period, unsigned int max_regen)
   : gr_sync_block ("regenerate_bb",
                   gr_make_io_signature (1, 1, sizeof (char)),
                   gr_make_io_signature (1, 1, sizeof (char))),
-    d_period(period)
+    d_period(period),
+    d_max_regen(max_regen),
+    d_regen_count(0)
 {
 }
 
@@ -51,16 +53,21 @@
 
   for (int i = 0; i < noutput_items; i++){
     optr[i] = 0;
-    d_countdown--;
-
+    
     if(iptr[i] == 1) {
       d_countdown = d_period;
       optr[i] = 1;
+      d_regen_count = 0;
     }
-    
-    if(d_countdown == 0) {
-      optr[i] = 1;
-      d_countdown = d_period;
+
+    if(d_regen_count <= d_max_regen) {
+      d_countdown--;
+      
+      if(d_countdown == 0) {
+       optr[i] = 1;
+       d_countdown = d_period;
+       d_regen_count++;
+      }
     }
   }
   return noutput_items;

Modified: 
gnuradio/branches/features/ofdm/sync/gnuradio-core/src/lib/general/gr_regenerate_bb.h
===================================================================
--- 
gnuradio/branches/features/ofdm/sync/gnuradio-core/src/lib/general/gr_regenerate_bb.h
       2007-06-06 04:38:39 UTC (rev 5703)
+++ 
gnuradio/branches/features/ofdm/sync/gnuradio-core/src/lib/general/gr_regenerate_bb.h
       2007-06-06 04:39:25 UTC (rev 5704)
@@ -28,7 +28,7 @@
 class gr_regenerate_bb;
 typedef boost::shared_ptr<gr_regenerate_bb> gr_regenerate_bb_sptr;
 
-gr_regenerate_bb_sptr gr_make_regenerate_bb (int period);
+gr_regenerate_bb_sptr gr_make_regenerate_bb (int period, unsigned int 
max_regen=500);
 
 /*!
  * \brief Detect the peak of a signal
@@ -39,13 +39,15 @@
  */
 class gr_regenerate_bb : public gr_sync_block
 {
-  friend gr_regenerate_bb_sptr gr_make_regenerate_bb (int period);
+  friend gr_regenerate_bb_sptr gr_make_regenerate_bb (int period, unsigned int 
max_regen);
 
-  gr_regenerate_bb (int period);
+  gr_regenerate_bb (int period, unsigned int max_regen);
 
  private:
   int d_period;
   int d_countdown;
+  unsigned int d_max_regen;
+  unsigned int d_regen_count;
 
  public:
 

Modified: 
gnuradio/branches/features/ofdm/sync/gnuradio-core/src/lib/general/gr_regenerate_bb.i
===================================================================
--- 
gnuradio/branches/features/ofdm/sync/gnuradio-core/src/lib/general/gr_regenerate_bb.i
       2007-06-06 04:38:39 UTC (rev 5703)
+++ 
gnuradio/branches/features/ofdm/sync/gnuradio-core/src/lib/general/gr_regenerate_bb.i
       2007-06-06 04:39:25 UTC (rev 5704)
@@ -22,10 +22,10 @@
 
 GR_SWIG_BLOCK_MAGIC(gr,regenerate_bb)
 
-gr_regenerate_bb_sptr gr_make_regenerate_bb (int period);
+gr_regenerate_bb_sptr gr_make_regenerate_bb (int period, unsigned int 
max_regen=500);
 
 class gr_regenerate_bb : public gr_sync_block
 {
  private:
-  gr_regenerate_bb (int period);
+  gr_regenerate_bb (int period, unsigned int max_regen);
 };





reply via email to

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