Problem linking app with qtgui_sink_c

Hey,

I’m having a problem building my application. If anyone can tell me what
I’m doing wrong it
would be appreciated.

All of the files I’m talking about are in gr-qtgui/lib

There is a public routine, set_yaxis, in FrequencyDisplayPlot that I
want to call. A pointer to that class is
used in spectrumdisplayform but not public. I made it public. There is a
pointer to
that class used in SpectrumGUIClass but not public. I made it public.
There is a
pointer to that in qtgui_sink_c but not public. I made it public. Then I
rebuilt gnuradio.
Everything builds and gnuradio works. My application calling set_yaxis
via

qtgui_sink_c_sptr fft_window = qtgui_make_sink_c(…)

fft_window->d_main_gui->_spectrumDisplayForm->_frequencyDisplayPlot->set_yaxis(-130.0,
0.0);

compiles. But when it links I get an undefined reference to
FrequencyDisplayPlot::set_yaxis.

I looked in the library that has that routine using nm and it is there

libgnuradio-qtgui-3.6.1git.so:00000000000172f0 t
FrequencyDisplayPlot::set_yaxis(double, double)
libgnuradio-qtgui.so:00000000000172f0 t
FrequencyDisplayPlot::set_yaxis(double, double)

so what is going wrong?

stephen

On Mon, May 21, 2012 at 10:34 PM, Stephen [email protected]
wrote:

used in spectrumdisplayform but not public. I made it public. There is a
0.0);

so what is going wrong?

stephen

Stephen,
I’m not sure what’s going wrong there, but that set_yaxis is exposed
through the SpectrumGUIClass as “SetFrequencyAxis”, which is called
via the qtgui_sink_{c,f} as “set_frequency_axis”. Can you use either
of those for what you want? (the naming was changed so that the
function exposed in GNU Radio is in the non-CamelCase style we use).

Tom

On 5/22/2012 8:38 AM, Tom R. wrote:

Wow. I totally missed that. That’s what I get for trying to do this so
late at night. Yes, that works fine. thanks.

stephen

On Wed, May 23, 2012 at 7:11 PM, Stephen [email protected]
wrote:

routine. That routine name doesn’t match what it does.

stephen

Sure. But set_y_axis also doesn’t fit, since you don’t know which
y-axis you’re talking about (time, waterfall, psd, etc.). Maybe
frequency_y_axis would have been better, but this was one of those
"Get it done now at all costs"™ type things as I recall.

It’s been mentioned before that there’s a rearchitecting of the gtgui
sinks going on now. As part of that, we’ll try to make the many, many
properties of the sinks more accessible. I’m thinking like a keyword
lookup structure so we don’t have to keep having these multiple layers
of wrapping to expose a method in a class contained down N levels.

Tom

I’m not sure what’s going wrong there, but that set_yaxis is exposed
through the SpectrumGUIClass as “SetFrequencyAxis”, which is called
via the qtgui_sink_{c,f} as “set_frequency_axis”. Can you use either
of those for what you want? (the naming was changed so that the
function exposed in GNU Radio is in the non-CamelCase style we use).

Tom

Now I remember how I missed this. I was wanting to change the y axis,
the decibel values, not the x axis, frequency. So I didn’t look at that
routine. That routine name doesn’t match what it does.

stephen