Work on USRP source and sink stream tagging for gr-uhd

I have been working on support of tag handling for the USRP source and
sink blocks in gr-uhd. I will be adding some test and example code, but
if anyone cares to experiment, see my uhd_features branch on jblum.git
http://gnuradio.org/cgit/jblum.git/log/?h=uhd_features

Rather than describe, its easier to paste these excerpts from the docs:

  • RX Stream tagging:

  • The following tag keys will be produced by the work function:

    • pmt::pmt_string_to_symbol(“rx_time”)
  • The timstamp tag value is a pmt tuple of the following:

  • (uint64 seconds, and double fractional seconds).

  • A timestamp tag is produced at start() and after overflows.

  • TX Stream tagging:

  • The following tag keys will be consumed by the work function:

    • pmt::pmt_string_to_symbol(“tx_sob”)
    • pmt::pmt_string_to_symbol(“tx_eob”)
    • pmt::pmt_string_to_symbol(“tx_time”)
  • The sob and eob (start and end of burst) tag values are pmt booleans.

  • When present, burst tags should be set to true (pmt::PMT_T).

  • The timstamp tag value is a pmt tuple of the following:

  • (uint64 seconds, and double fractional seconds).

-Josh

Added an example C++ app to demonstrate source and sink tagging:

http://gnuradio.org/cgit/jblum.git/tree/gr-uhd/examples?h=uhd_features&id=ddfddc5c20e2ee4f9a12796100089c203aa4ef27

gr-uhd/examples/tags_demo --help
UHD Tags Demo Allowed options:
–help help message
–addr arg the device address in string format
–rate arg (=1000000) the sample rate in samples per
second
–freq arg (=10000000) the center frequency in Hz
–burst arg (=0.10000000000000001) the duration of each burst in
seconds
–idle arg (=0.050000000000000003) idle time between bursts in seconds

The tags sink demo block will print USRP source time stamps.
The tags source demo block will send bursts to the USRP sink.
Look at the USRP output on a scope to see the timed bursts.

-Josh

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