Hello all
My application is software defined radio, with relatively easy gui issues. I have been using qwt 5.2 for generating spectrum displays and
waterfalls, the latter showing the evolution of the spectra with pretty good results.
I have been managing getting the spectrum displays using qwt 6.xx, however, it seems that having the waterfalls using 6.xx
requires some additional rewriting and brings me a severe performance loss.
The waterfall itself is implemented as a spectrogram, using n * 256 * 50 elements (n is user selectable, I am just keeping 50 lines of spectral info in the
waterfall). My approach was to have a large vector of doubles using as qwtrasterdata.
With a simple vector, it is possible to use highly optimized transfer functions. Each time a new line appears to be displayed,
I just move (with memcopy like and memove functions) all data one line (i.e. it will be shifted over n * 256 doubles), add then the data for the new line and replot.
The vector was part of a class spectrogramdata, an extension of qwtrasterdata, with (a.o) a function value implemented.
This does not work in 6.xx
When forced to use a class qwtmatrixrasterdata, the data will be stored in a vector<double>, and I am apparently loosing the possibility
of using optimized memory transfer functions. I am generating between 10 to 15 per second a new waterfall frame, and it goes up to
3 waterfalls on the screen, so efficient dealing with this data is a real must.
My question: is my attempt to keep a simple implementation of my own extension of qwtrasterdata with my own value function doomed to fail
or am I just making programming errors, keeping it away from working?
Any help is appreciated,
all the best
jan
Bookmarks