Slight correction/clarification to the below: obviously, I am not calling rtlsdr_set_center_freq when using rtl_tcp.exe.  Instead, what I see is that I can queue up a bunch of tuning calls, but they only kick in at a very slow rate (1 hz).  The effect is similar to when I used the native libs, where rtlsdr_set_center_freq  also took 1 s on the main thread.

-Scott


On 9/26/2012 3:23 AM, Scott Cutler wrote:
I've ported my app to use rtl_tcp.exe instead of the native rtlsdr libs, and while it is partly working (samples reading correctly, no dropped samples, etc.), I have run into two issues.

First--when I start reading samples too quickly after setting the sample rate, I get this error:

C:\Users\Scott Cutler\Projects\p4\0\projects\sdr\SeeDeR\SeeDeR\rtl-sdr-release\x32>rtl_tcp.exe -f 100000000 -s 2048000
Found 1 device(s).
Found Elonics E4000 tuner
Using Generic RTL2832U (e.g. hama nano)
Tuned to 100000000 Hz.
listening...
Use the device argument 'rtl_tcp=127.0.0.1:1234' in OsmoSDR (gr-osmosdr) source
to receive samples in GRC and control rtl_tcp parameters (frequency, gain, ...).
client accepted!
set freq 105000000
set sample rate 1920000
worker cond timeout
Signal caught, exiting!
comm recv socket error
Signal caught, exiting!
all threads dead..
listening...
Use the device argument 'rtl_tcp=127.0.0.1:1234' in OsmoSDR (gr-osmosdr) source
to receive samples in GRC and control rtl_tcp parameters (frequency, gain, ...).


If I instead wait about two seconds after setting the sample rate, there is no problem.  There is also no problem if I immediately read samples after connecting, where I set the sample rate on the command line.

The other issue is that tuning is very slow--about one second per call to rtlsdr_set_center_freq.  I had a similar problem with the rtlsdr.dll library, and I found that tuning was very slow if performed from the main thread, but fairly quick (maybe 10-20 hz) if done from the async proc thread that rtlsdr_read_async launches.

That seemed a bit odd to me but it worked.  I suspect that rtl_tcp.exe is doing the same thing; calling rtlsdr_set_center_freq from the main thread.

Ideas, anyone?  Thanks!

-Scott

PS: I'm running Win7-64, in case it matters.  Also using the latest version here:
http://sdr.osmocom.org/trac/attachment/wiki/rtl-sdr/RelWithDebInfo.zip