Tuesday, April 9, 2024

How to get UHD 'rx_time' / 'rx_freq' after 'tune'? (Python)

Hi,

(see subject line)

SETUP:

I'm using GR / Python / USRP (one or more B210s) for Rx frequency-hopping in a no-GUI application.

I created a block that sends 'tune' messages to the uhd, based on the docs here:
REF: https://www.gnuradio.org/doc/doxygen/page_uhd.html#uhd_command_syntax_cmds
(the messages from that block are also sent to a ZMQ PUB Message Sink for logging).

I've done extensive testing, and I know the tune commands are being processed by the B210, i.e. it's changing center_freq and LO Offset.

PROBLEM:

Although I know when the command was sent, I don't know when it was processed. I want to either:

1. get 'rx_time' and 'rx_freq' messages after the 'tune' command is executed, or
2. access <my_uhd_block>.get_time_now() / <my_uhd_block>.get_center_freq() from within a python block. I'm unclear on how to get the <my_uhd_block> reference.

Note the rx_time, rx_freq, and rx_samp tags are attached to sample 0, but no other. It's not clear from my reading of the gr and usrp docs how I might issue the tune request as a timed command to make use of the info at sample 0 (or recover from underflow).

I'm hoping that I've 'missed something obvious' ... any suggestions welcome.

No comments:

Post a Comment