Hi,

well, ...
I am recording small slots (up to 2 seconds) of data at different frequencies, gain, sample rates, etc. I have written a manager for the USRP where other classes can ask for a certain slot (frequency, sample count, sample rate, ...). The manager does not know when someone will ask for data. So it happens that there is nothing to do. In that case the manager looses track of the current time and does not know when to start the next command once someone asks for a new slot. In this case he gets the current time, adds a few hundred ms to be on the safe side and continues. Even if I would be able to plan that far ahead, I found out that the USRP is not able to plan commands that are quite far in the future (it was like 10 seconds or so). Starnge things happen and I also loose track of the time. One more reason is that the USRP is not capable of timed sample rate switches (was discusses here a few month back) which means that the manager has to wait until all pending commands are done and the data is received, then switch the sample rate, get the current time (as the processing/download of the data in the other thread may take some time), again add a few hundred ms and continue. Actually I am currently quite pissed as I run into one bug after another and cannot continue my actual work. I found like another three critical bugs, but I cannot reporoduce them in smaller programs and I do not have the time to debug the full UHD library. So I write one workaround after another.

Best regards,
Fabian


Am 23.04.2019 um 20:29 schrieb Brian Padalino:
On Tue, Apr 23, 2019 at 2:06 PM Fabian Schwartau via USRP-users <[email protected] <mailto:[email protected]>> wrote:

    Hi everyone,

    I just found another strange thing. Can get_time_now() be in any case
    blocking? Like long blocking? It takes more than 1 second to return!
    I am heavily using timed commands, but I tried a clear_command_time()
    before calling get_time_now() with no effect. It would also make no
    sense at all to be able to set a command time for get_time_now().
    According to documentation the command just reads the registers in the
    USRPs and returns them - no need to wait for anything.
    Any ideas?


Reading registers isn't the fastest thing in the world, but you shouldn't be utilizing get_time_now() heavily for a real time system. Taking a second sounds like something is wrong, but I'm still curious why you're constantly asking for the time.

The idea behind that is to understand the current time the radio has, figure out what you want to do when you first start a stream or do something, then use sample counting to understand when things are supposed to be happening.

So, why do you keep asking for the time?  What's the use case you're trying to figure out?

Brian

_______________________________________________
USRP-users mailing list
[email protected]
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

Reply via email to