On 04/13/2012 08:36 AM, Nowlan, Sean wrote:
> A few questions about this: can you wait on the uhd async message
> queue from a python script that has an instance of top_block? Would
> you have to override wait() with a custom version that waits on the
> queue (haven't checked if wait is a virtual function)?
> 

Yes, you can wait on the message queue. In pseudo code:

top_block.start()

while True:
        sleep(.01) # just a bit
        msg = the_msg_queue.delete_head()
        if not msg: continue
        if parse(msg) == ACK: break

top_block.stop()
top_block.wait()

The msg is kind of a blob of bytes with this struct, so you have to
write parse():
http://files.ettus.com/uhd_docs/doxygen/html/structuhd_1_1async__metadata__t.html

-----------------------------------------------------------------------
I have a version of the async message source that uses the PMT message
passing feature, so its a little more graceful:
https://github.com/guruofquality/grextras/blob/master/include/gnuradio/extras/uhd_amsg_source.h

Your message would be a PMT dictionary that you can pop-apart in python:
https://github.com/guruofquality/grextras/blob/master/lib/uhd_amsg_source.cc#L68

> Does UHD also ACK time tags and start-of-burst tags?
> 

Just the end of burst.

I can image that it might be useful to know when the USRP began
triggering the transmission.

-josh

_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to