|
From: | Activecat |
Subject: | Re: [Discuss-gnuradio] Scheduling a block even with no input items RE: Flow graph blocking when doing 2x1 transmission |
Date: | Sun, 8 Jun 2014 13:24:24 +0800 |
-------- Original message --------From: ActivecatDate:2014/06/05 7:57 AM (GMT+00:00)To: David Halls ,address@hiddenSubject: Re: [Discuss-gnuradio] Scheduling a block even with no input items RE: Flow graph blocking when doing 2x1 transmission
David,
Basically my idea to solve the problem may involve an overhaul of your existing flowgraph, as below:
1). You must understand that the output of UHD source is at constant rate. In particular I am referring to the "Relay Rx" USRP.
Even when the USRP does not receive any RF signal, it keeps sending out zeros (plus noise) as its output, at constant rate.
Try to make all your blocks behave in this way. I am referring to the blocks between the "Relay Rx" and "Relay Tx".
The idea is: keep transmitting, don't produce no output at any time. If nothing need to be produced, then output zeros at constant rate.
In this case all your custom blocks are either sync block, decimation or interpolation blocks. You don't need any general block.
2). With above condition fulfilled, we could ensure that the data fed into the "Relay Tx" USRP is at constant rate, and we could then determine this rate by simple calculations.
The data stream into the "Relay Tx" USRP will not stop at any instance. It is 'consistent'.
3). You want the "Relay Rx" USRP ignores the received signal during the time that the "Relay Tx" USRP is transmitting, that is fine.
But just try to make the downstream block of "Relay Rx" USRP keep transmitting zeros rather than stop transmitting during this period.
4). With these, you will have both "Relay Tx" USRP and "Source" USRP transmitting at constant data rate and nonstop.
They could be transmitting at different rates, that is ok, and this is not difficult to handle.
With this, you avoid the initial problem (problem of occasionally there is no items at one of the inputs) mentioned in this thread, which is the root cause of your problem.
Then your problem is solved !
[Prev in Thread] | Current Thread | [Next in Thread] |