# \[USRP\] tracking the transmission/receiving process

**URL:** <https://www.ruby-forum.com/t/usrp-tracking-the-transmission-receiving-process/243299>\
**Category:** GNU Radio\
**Created:** [September 9, 2015, 12:41am UTC](https://www.ruby-forum.com/t/usrp-tracking-the-transmission-receiving-process/243299 "2015-09-09T00:41:52Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Rafa\_F](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/958977/32.png) [@Rafa\_F](https://www.ruby-forum.com/u/Rafa_F)\
**Post date:** [September 9, 2015, 12:41am UTC](https://www.ruby-forum.com/t/usrp-tracking-the-transmission-receiving-process/243299/1 "2015-09-09T00:41:52Z")

</div>

Hello,

I’ve been tracking the source code to figure out the procedure of  
transmission/receiving. All I’ve found out is that the parameters (e.g.  
freq, gain, etc.) are stored in a property tree, and messages are  
inserted to the tail of queue. But how does the transmitter/receiver  
(daughter board) know when to transmit/receive? Specifically, which file  
in UHD host code does the job of notifying the hardware to  
transmit/receive?

I’ve also found the “tx\_streamer” and “rx\_streamer”.  
([USRP Hardware Driver and USRP Manual: uhd::rx\_streamer Class Reference](http://files.ettus.com/manual/classuhd_1_1rx__streamer.html)) The  
official manual seems saying they handle the communication between the  
host PC and the USRP device. Is that correct?

Thank you,  
Logan

---

<div class="post-metadata">

**Author:** ![logan\_wu](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/77aa72/32.png) [@logan\_wu](https://www.ruby-forum.com/u/logan_wu)\
**Post date:** [September 9, 2015, 1:19am UTC](https://www.ruby-forum.com/t/usrp-tracking-the-transmission-receiving-process/243299/2 "2015-09-09T01:19:37Z")

</div>

As an example, look for issue\_stream\_command() in

uhd/host/lib/usrp/cores/rx\_dsp\_core\_200.cpp

There are separate files to control the various “cores” in the FPGA  
logic. And, there are multiple versions of things for different boxes,  
transports, etc. It starts makes sense if you read through a bunch of  
the code.

- Jeff

---

<div class="post-metadata">

**Author:** ![logan\_wu](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/77aa72/32.png) [@logan\_wu](https://www.ruby-forum.com/u/logan_wu)\
**Post date:** [September 9, 2015, 8:36pm UTC](https://www.ruby-forum.com/t/usrp-tracking-the-transmission-receiving-process/243299/3 "2015-09-09T20:36:57Z")

</div>

Hi Jeff,

Thank you for the suggestions. I’ll look into the codes under “cores”  
directory.

Logan
