How far can one get with "tags" only without using "messages"

I have in mind a comm system where a Tx is monitoring a beacon and
estimates timing from it
(say the beacon is transmitting a periodic signal with period 100msec).
Then the Tx aligns its transmission with this beacon and sends some
data at the beginning of each 100msec interval (lets assume the data
can be send in 10msec).
The Rx is also listening to the same beacon and aligns its reception
with it, etc,.

I want to see if this system can be built with tags only, ie, without
using messages.

My idea is the following:

At the Tx I will run an estimate of the beacon timing and
know the exact 100msec boundaries by using the UHD-source tags (eg, if
I know that the synchronizer found the
m-th sample as the boundary and I know from the UHD-source tag that
the n-th sample
happened at time t0, I can figure out the 100msec absolute time
boundaries with respect to the Tx-USRP internal clock).
This syncing process can be run at the beginning (I am assuming
half-duplex daughterboards)
and/or wake up and run it every say 10seconds so that I keep an accurate
timing.

I will do exactly the same at the Rx.

So every 10seconds there is an updated estimate of the 100msec
boundary at both Tx and Rx
relative to their respective USRP clocks.

Now at the Rx all I have to do is to tag the incoming samples from the
USRP with the beginning of the
boundary (every 100msec) and the downstream blocks can catch these
tags and do the rest of the processing.

So far so good.

At the Tx all I have to do is to time-stamp my transmitted signal to
the estimated/calculated transmitted boundaries.

So the question is, how do I inform the Tx blocks (the ones that are
responsible for transmitting the data)
of the estimated/calculated boundaries?
Can this happen with tags only or do i need messages?

thanks
Achilleas

On Thu, Mar 14, 2013 at 12:21 PM, Achilleas A.
[email protected] wrote:

using messages.
This syncing process can be run at the beginning (I am assuming
Now at the Rx all I have to do is to tag the incoming samples from the
responsible for transmitting the data)
of the estimated/calculated boundaries?
Can this happen with tags only or do i need messages?

thanks
Achilleas

Achilleas,

For this, I would definitely use the message passing system to trigger
the TX from the RX. You can have the first block of the TX path simply
wait for a message. Look at the “pdu_to_tagged_stream” block for
inspiration here.

The nice thing about this is that you don’t really have to worry about
the asynchronous properties of the message passing infrastructure.
Since the source is based on waiting for a message, it will actually
just block and do nothing until a message is posted. It will then
immediately call the message handler to start things happening on the
transmit side.

Tom

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs