I am learning how to run USRP devices using GNURadio. I am able to send a stream of data from one USRP to another, and receive it successfully. Now I want to do more advanced stuff. Currently, I want to set a USRP to receive some data, then when the data is completely received, I want this same USRP to automatically become a transmitter and send data back (such as ACK/NACK or something else). Here are my questions:
I think I need to use a UHD source and a UHD sink with the same address to allow the USRP to transmit at some times and receive at others. How can I control both UHD blocks so that I am receiving when I am not transmitting, and vice versa?
I have noticed there are many ways to pass data and control between blocks (pmt, blob, message passing, tagged streams). I come from EE background and tried to read the documentation but I am not sure what should I use for this project?