Hey,

I don't see a conceptual reason why you can't change the equalizer at
runtime, but you have to be careful to not get into concurrency issues. You
should hold onto a reference to your new equalizer until some condition is
met, and then replace d_eq at "the right time", whatever that is (before
the frame processing starts, but after some condition is met, like the
timestamp you want to change it at or something like that).

>From your linker errors, it looks like you have some conceptual problem
though (unrelated to equalizers). I recommend you read some other blocks'
code first to see how callbacks are added, then try adding some empty
callbacks until the linker is happy, and then proceed.

--M

On Mon, Dec 27, 2021 at 2:46 AM maolin liu <ling...@outlook.com> wrote:

> Hello everyone,
>
>     I'm sorry to bother you here,I wasn't sure whether my previous email
> was sent, but I was eager to know the answer to this question, so I sent it
> again. I would like to ask if there is any method or suggestion for me to
> control the modulation mode of "OFDM frame equalizer" module and
> "constellation decoder" through "QT GUI chooser" or other widgets. I know
> that they cannot be changed. Because they do not have "callback" function,
> they will be fixed once the flow graph runs. I try to write "callback"
> function myself, But my C + + level is really limited. There are some
> errors here. I don't know how to solve them.
>
>
>
> /usr/bin/ld: libgnuradio-digital.so.v3.8.2.0-111-g6aad98a6: undefined
> reference to
> `gr::digital::ofdm_frame_equalizer_vcvc::set_equalizer(boost::shared_ptr<gr::digital::ofdm_equalizer_base>)'
>
> /usr/bin/ld: libgnuradio-digital.so.v3.8.2.0-111-g6aad98a6: undefined
> reference to `typeinfo for gr::digital::ofdm_frame_equalizer_vcvc'
>
> collect2: error: ld returned 1 exit status
>
> make[2]: *** [gr-digital/lib/CMakeFiles/digital_qa_header_
> buffer.cc.dir/build.make:104:gr-digital/lib/digital_qa_header_buffer.cc
> <http://buffer.cc.dir/build.make:104%EF%BC%9Agr-digital/lib/digital_qa_header_buffer.cc>]
> error 1
>
> make[1]: *** [CMakeFiles/Makefile2:8900:
> gr-digital/lib/CMakeFiles/digital_qa_header_buffer.cc.dir/all] error 2
>
>
>
>     I refer to the writing method of callback in other modules, but there
> are still errors, and I think it is not good to change the source code,
> which may cause many unknown errors, so I want to know whether there are
> other ways for me to change the modulation mode at any time? Or is it
> feasible to add the callback function directly?
>
>     Any suggestion would be appreciated!
>
> Bset Regrads,
>
> linge93
>
>
>
>
>
>
>

Reply via email to