[Top][All Lists]
[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);
};
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r5704 - gnuradio/branches/features/ofdm/sync/gnuradio-core/src/lib/general,
trondeau <=