Forum: GNU Radio Re: Scheduling a block even with no input items RE: Flow graph blocking when doing 2x1 transmission

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I
unfortunately do not have the time to support and maintain the forum any
more. Please see rubyonrails.org/community and ruby-lang.org/en/community
for other Rails- und Ruby-related community platforms.

-------- Original message --------
From: Activecat
Date:2014/06/05 7:57 AM (GMT+00:00)
To: David Halls ,discuss-gnuradio@gnu.org
Subject: Re: [Discuss-gnuradio] Scheduling a block even with no input
items RE: Flow graph blocking when doing 2x1 transmission
On Wed, Jun 4, 2014 at 7:10 PM, David Halls
<david.halls@toshiba-trel.com<mailto:david.halls@toshiba-trel.com>>
wrote:
Activecat,
In fact my horrible hack doesn't work properly. Once items start
arriving at Payload TD Tx 2, they still don't arrive as 'consistently'
(for want of a better word), as those from the Noise Source block, and
thus zeros are inserted when they are not required!
David
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 !
Great! Thanks active cat. This will take some time, I'll will report
back once I have it working!! :)
________________________________
NOTE: The information in this email and any attachments may be
confidential and/or legally privileged. This message may be read, copied
and used only by the intended recipient. If you are not the intended
recipient, please destroy this message, delete any copies held on your
system and notify the sender immediately.
Toshiba Research Europe Limited, registered in England and Wales
(2519556). Registered Office 208 Cambridge Science Park, Milton Road,
Cambridge CB4 0GZ, England. Web: www.toshiba.eu/research/trl

On Thu, Jun 5, 2014 at 4:19 PM, David Halls
<david.halls@toshiba-trel.com>
wrote:
>> decimation or interpolation blocks. You don't need any general block.> transmitting zeros rather than stop transmitting during this period.>> Great! Thanks active cat. This will take some time, I'll will report
back once I have it working!! :)
Hi David,
I have a "frequency counter" block [1], could be used as an example.
The "freq_counter1" is a general block, it was implemented as a sync
block
in "freq_counter2".
You may run examples/flowgraph_07.grc and flowgraph_08.grc to see their
outputs.
1. https://github.com/activecat/gr-test2