[USRP-users] Transmission with timestamps

Matthias P. Braendli mpbraend at gmail.com
Sat Jun 2 16:48:23 EDT 2012


Dear USRP-Users,

I am transmitting a stream (without any interruption) of data to the
USRP (I have both a B100 and a USRP2) using a C++ program. All the
packets[1] have a timestamp.

Now, what poses a problem is that once in a while, I want to change my
timestamps a bit (creating a small gap in transmission, or dropping a
few samples). But, as long as there are no underruns, the FSM in
vita_tx_control seems to stay in IBS_RUN and IBS_CONT_BURST (that's only
a hypothesis), and ignores the timestamps that have changed. I only
observe the change if I force an underrun (e.g. by suspending my
software a short instant).

What is the best way to make the USRP reconsider the timestamps while
the stream runs ? Is there a better way than dropping a packet, thereby
creating an underrun ?

I've also tried setting the end-of-burst, and with both
STREAM_MODE_NUM_SAMPS_AND_MORE and STREAM_MODE_START_CONTINUOUS
<http://files.ettus.com/uhd_docs/doxygen/html/structuhd_1_1stream__cmd__t.html#a4df1f2e22148b7e09ace0eca0dfbf904a91fa979980d1a6de6bf861b8459ed5c3>,
but I get a lot of late packets (prints 'L' on the console). This
approach seemed to be better, because the FSM would go back to IBS_IDLE,
but I'm not sure I'm doing it right.

Furthermore, I have not quite understood what the stream mode
influences. Is it changing the policy_next_packet and policy_next_burst
in vita_tx_control.v ?

Best regards,

Matthias

[1]:
by "packet" I mean the data given to the tx_streamer::send function.
Please tell me if the official terminology differs.




More information about the USRP-users mailing list