Hi all,
I have a system, where I need to plot a huge-huge amount of data points. For example I have device which sends points with 8125Hz frequency.
In this case on 24 hours it is equal to 8125 * 60 * 60 * 24 = 702 000 000 points. Also each point has 8 byte size (double), so the data size is 5 616 000 000 bytes,
without of timestamp.. And with the timespamps data it equals to 5 616 000 000 * 2 = 11 232 000 000 bytes.
The use case is following:
The User can view the trends as daily log (all points for 24 hour).
Also the user can specify a desired time range to more detail viewing (e.g. from 10:10:10 to 10:10:11).
So, is it possible to use Qwt to draw, this amount of data for each curve (as I have more than one of this devices)?
What is idea to do that?
As I understand, I need to use custom QwtSeriesData implementation...
When the called QwtSeriesData::setRectOfInterest(), I need to cache some amount of points from the points storage (e.g. from the file or database) inside of QwtSeriesData.
And then when will be called the QwtSeriesData::sample(), then I will return the sample from this cached data. So, in this case the QwtSeriesData::size()
should return the size of current cache.
When the QwtSeriesData::setRectOfInterest(hugeHugeRect) specified whole daily log (points from whole 24 hours), then I need to make caching of data with some factor,
e.g. read data from storage, every 100/1000 and so on point (do not read each point of data from storage)...
Do I understand the idea correctly or not?
BR,
Denis
Bookmarks