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 > > > > > > >