discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: [Discuss-gnuradio] Dynamic parameter modification in a custom block


From: Tom Rondeau
Subject: Re: [Discuss-gnuradio] Dynamic parameter modification in a custom block
Date: Mon, 4 Jun 2012 21:01:14 -0400

On Mon, Jun 4, 2012 at 5:30 PM, Michael Dickens <address@hidden> wrote:
> Hi George - I believe there are 2 possible solutions, though I've never used 
> or tested either myself.  If you just want to verify that what you want to do 
> works, I think (1) should be quite straight forward.
>
> 1) This method will certainly work, but it's not very robust : Make your 
> "custom_block2" take an argument which is of the "custom_block1" smart 
> pointer type, such that the amplitude can be set any time the former performs 
> the computation to do so.  Instantiation of the "custom_block2" would take a 
> smart pointer to the "custom_block1", and then store that reference for 
> future use; because this is a C++ object, just use "." or "->" to access the 
> object's variable or method.

George,
That would work, but it's very unsafe to do something like that. For
testing or a simple program, sure, but don't rely on it as a method.
If something goes out of scope at the wrong time or you close one
object that is sharing state with another, you'll find yourself in
trouble.

> 2) I don't know if stream tags are in place well enough yet, nor if they 
> would work in the manner you require.  The idea is that there's a tag plane 
> (sort of like a control plane) that "overlays" (or is in parallel with) the 
> graph (data-flow) plane, where tags can be inserted -- a timestamp, or a 
> value that might get used downstream.  Since "custom_block1" isn't downstream 
> from "custom_block2", tags might not work.  Maybe there's a branch for this 
> sort of non-downstream async control?
>
> Hope this helps; good luck! - MLD

I'm not sure stream tags are right for this application because they
are in two different flowgraphs. Stream tags start at one end of a
flowgraph and move downstream.

There is a message passing interface where a block has a message
handler function. The trick you're going to have to deal with is how
to tell one block about another. This has been a problem for a while
that I hope we can sort out this year in a way that's robust (i.e.,
thread safe and won't suffer from scope issue if one block has a
pointer to another).

Tom


> On Jun 4, 2012, at 3:52 PM, George Sklivanitis wrote:
>> I am dealing with the problem of finding a way to dynamically give values to 
>> a parameter of a custom block that I 've made in gnuradio
>> by the output of another custom block.
>> The solution of function probe that I have found in previous conversations 
>> in the forum does not fit me as the value to be changed dynamically is 
>> entered ad-hoc by the user.
>> I will try to simplify my problem to the rest of the community by giving the 
>> following example
>> let us assume the following flowgraph implementation
>>
>> signal_source -> custom_block(arg amplitude) -> file_sink  (1)
>>
>> file_source -> custom_block2  -> file_sink  (2)
>>
>> Would it be possible to use as the amplitude argument in (1) the output of 
>> the custom_block2 in (2).
>
> _______________________________________________
> Discuss-gnuradio mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio



reply via email to

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