|
From: | Feng Andrew Ge |
Subject: | [Discuss-gnuradio] Is data communication between UHD_USRP_SOURCE and USRP2 "polling" or "pushing" |
Date: | Wed, 02 Mar 2011 13:06:54 -0500 |
User-agent: | Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.13) Gecko/20101208 Thunderbird/3.1.7 |
Josh,Once I start uhd_benmark_rx.py, USRP2 continuously sends data to the host. The data rate is the sample rate times 4 (bytes per sample). This happens even when no transmitter is around. Therefore, I assume that the ADC just converts noise into samples and USRP2 sends those samples at the rate specified by the sample rate when uhd_usrp_source is initialized.
I have one question, is data communication between USRP2 and uhd_usrp_source "polling" or "pushing"? I thought it is "polling" because only UDP socket client exists in uhd_usrp_source. In this case, data RECV is triggered by the scheduler's work function. Usually the noutput_items varies from time to time. If so, how can USRP2 send samples at a constant rate of the specified samp_rate (as I observed)?
If it is "pushing" (which means that USRP2's firmware initiates the data sending to the host), it looks like that USRP2 even sends samples of noise at a constant speed. But if so, would the such samples fill the kernel socket buffer (whose size is determined by "sudo sysctl -w net.core.rmem_max=<new value>")? Newer packets will get dropped.
On 03/01/2011 06:13 PM, Josh Blum wrote:
Nothing gets buffered in the UHD in the usrp2/n210 implementation. However, there is a kernel socket buffer on receive that has enough buffering for a second of samples. Once this buffer fills, newer packets are dropped. I also believe that this is the same on the raw ethernet driver. -josh
[Prev in Thread] | Current Thread | [Next in Thread] |