00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef DATAHANDLER_H
00026 #define DATAHANDLER_H
00027
00028 #include <QVector>
00029 #include <QDateTime>
00030 #include <QPoint>
00031
00040 class DataHandler
00041 {
00042 public:
00044 enum Constants
00045 {
00046 numberofLines = 8,
00048 secondsprLine = 30,
00050 secondsprDetailLine = 10,
00052 standardSamplingRate = 500
00054 };
00055
00059 DataHandler();
00060
00065 DataHandler(int samplesprSecond);
00066
00072 DataHandler(const QDateTime &startingPoint, int samplesprSecond);
00073
00075 ~DataHandler();
00076
00081 void setStartStamp(const QDateTime &start) { startStamp = start; }
00082
00087 void setDetailStamp(const QDateTime &detail){ detailStamp = detail; }
00088
00093 QDateTime getStartStamp() const { return startStamp; }
00094
00099 QDateTime getDetailStamp() const { return detailStamp; }
00100
00105 QString getStartStampText() const;
00106
00113 QString getStartStampText(int line, int sample) const;
00114
00119 QVector<QVector<double> >& getYLines() { return yVectors; }
00120
00126 const double *getYLine(int line) const
00127 { return yVectors[line].constData(); }
00128
00133 const double *getXLine() const { return xVector.constData(); }
00134
00136 int getSamplesPrLine() const { return samplesprLine; }
00137
00139 int getSamplesPrDetailLine() const
00140 { return secondsprDetailLine * samplingRate; }
00141
00148 double *getLineSample(int line, int sample);
00149
00151 QPoint getLineSampleBounds() const;
00152
00154 QPoint getDetailLineSampleBounds() const;
00155
00161 inline void setLineAxisBounds(double min, double max);
00162
00167 inline void setLineAxisBounds(QPointF p);
00168
00170 inline QPointF getLineAxisBounds() const;
00171
00177 inline void setDetailAxisBounds(double min, double max);
00178
00180 inline QPointF getDetailAxisBounds() const;
00181
00186 void setSampleprSecond(int sprsec);
00187
00188
00189 private:
00190 QPointF d_lineaxisbounds, d_detailaxisbounds;
00191 int samplingRate;
00192 int samplesprLine;
00193 double* detailStart;
00194 mutable QVector<QVector<double> > yVectors;
00195 QVector<double> xVector;
00196 QDateTime startStamp;
00197 QDateTime detailStamp;
00198 void initArrays();
00199 };
00200
00201 inline void DataHandler::setLineAxisBounds(double min, double max)
00202 { d_lineaxisbounds.setX(min); d_lineaxisbounds.setY(max); }
00203 inline void DataHandler::setLineAxisBounds(QPointF p)
00204 { d_lineaxisbounds = p; }
00205 inline QPointF DataHandler::getLineAxisBounds() const
00206 { return d_lineaxisbounds; }
00207 inline void DataHandler::setDetailAxisBounds(double min, double max)
00208 { d_detailaxisbounds.setX(min); d_detailaxisbounds.setY(max); }
00209 inline QPointF DataHandler::getDetailAxisBounds() const
00210 { return d_detailaxisbounds; }
00211
00212 #endif // DATAHANDLER_H