discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] What Is The Proper Way To Change Block Parameters


From: Kevin Reid
Subject: Re: [Discuss-gnuradio] What Is The Proper Way To Change Block Parameters While Running
Date: Tue, 20 Dec 2016 10:21:16 -0800

On Tue, Dec 20, 2016 at 8:38 AM, Sean Horton <address@hidden> wrote:
What is the best way to change settings such as gain, taps, frequency values, etc of various blocks while running? The current setup I'm refactoring receives new configs over tcp, and a block outputs the new config values to probe signals, and those probe signals are used to change various settings. In the case of setting some usrp source parameters (center frequency), it appears to not properly work, so for the usrp sink and sources, I am going to pass messages to change the parameters. This isn't possible for other blocks, though, as they do not have message inputs. 

If I should stick with the current method, though, I'm really curious how there is mutual exclusion, as the values are being changed while the flowgraph is running. I have looked at the source code for some of the blocks I'm using, and I don't see any mutexes. This makes me think this isn't the best way to do what is being done. 

Calling the setter methods is fine. Mutexes are not necessary for simple numeric parameters, because one thread (the block work thread) is only reading and one thread is only writing (your control thread) and there are no particular invariants to be maintained.

The worst thing that could happen is reading a half-written large value and producing bad data for a period, but changing parameters in many cases will result in some kind of “glitch” in the sample stream anyway, so this is merely “noisier”.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]