Detecting transmit underruns on UHD

With UHD, how can I programmatically detect when transmit underruns have
occurred?

I see Us in the output both on the host and from the USRP2 serial port,
but I haven’t spotted an API to test for this condition.

-Marc

See recv async message:
http://www.ettus.com/uhd_docs/doxygen/html/classuhd_1_1device.html#afe4ec312d71c669fbd86ce9a7d350605

And the async metadata:
http://www.ettus.com/uhd_docs/doxygen/html/structuhd_1_1async__metadata__t.html

-Josh

Oh cool! When was that implemented? I missed it…

I assume there is no problem with timeout = 0?

Is the interface thread safe? read/write/recv_async?

–Eric

On 09/02/2010 01:54 PM, Marc E. wrote:

On Sep 2, 2010, at 12:23 PM, Josh B. wrote:

See recv async message: http://www.ettus.com/uhd_docs/doxygen/html/classuhd_1_1device.html#afe4ec312d71c669fbd86ce9a7d350605

And the async metadata: http://www.ettus.com/uhd_docs/doxygen/html/structuhd_1_1async__metadata__t.html

Thanks, Josh. Now that you mention it, I remember your announcement where that was added.

It looks like I’ll need another thread to watch for those messages, right?

That is one possibility. You can also poll for the messages by using a
timeout of zero. Depends on your application and what is most
convenient.

-josh

On Sep 2, 2010, at 12:23 PM, Josh B. wrote:

See recv async message: http://www.ettus.com/uhd_docs/doxygen/html/classuhd_1_1device.html#afe4ec312d71c669fbd86ce9a7d350605

And the async metadata: http://www.ettus.com/uhd_docs/doxygen/html/structuhd_1_1async__metadata__t.html

Thanks, Josh. Now that you mention it, I remember your announcement
where that was added.

It looks like I’ll need another thread to watch for those messages,
right?

-Marc

On 09/02/2010 01:46 PM, Eric S. wrote:

Oh cool! When was that implemented? I missed it…

http://old.nabble.com/UHD-Announcement---August-16th-2010-td29457066.html

I assume there is no problem with timeout = 0?

should be fine

Is the interface thread safe? read/write/recv_async?

You can have a separate thread for send, recv, async recv, control
(sets/gets). So thats fine, but dont (for example) use multiple threads
to call send, or multiple threads to set properties.

-josh