+/*
+ * Accelerometer class to access the device accelerometer
+ *
+ * @author Rikhard Kuutti <rikhard.kuutti@fudeco.com>
+ * @author Kai Rasilainen <kai.rasilainen@fudeco.com>
+ * @author Jukka Kurttila <jukka.kurttila@fudeco.com>
+ * @copyright (c) 2010 Speed Freak team
+ * @license http://opensource.org/licenses/gpl-license.php GNU Public License
+ */
+
#ifndef ACCELEROMETER_H
#define ACCELEROMETER_H
#include <QObject>
-#include <QTime>
-#include <QTimer>
+
+#include "filereader.h"
+#include "calculate.h"
+#include "calibratedialog.h"
class Accelerometer : public QObject
{
Accelerometer();
~Accelerometer();
- void start();
- void stop();
-
+ void getAcceleration(qreal &x, qreal &y, qreal &z);
+ void smoothData(qreal &x, qreal &y, qreal &z);
+ void calibrate();
void initValues();
- void setSampleRate(int pSampleRate);
- int getSampleRate();
-
- qreal getTrueAccelerationX();
- qreal getTrueAccelerationY();
- qreal getTrueAccelerationZ();
- qreal getPreviousSpeed();
- qreal getCurrentSpeed();
+ qreal getCalibrationX();
+ qreal getCalibrationY();
+ qreal getCalibrationZ();
- qreal getDistanceTraveled();
- qreal getLastDistanceTraveled();
- qreal getAverageSpeed();
-
- qreal getCurrentAcceleration();
- qreal getTotalAcceleration();
- qreal getPreviousTotalAcceleration();
+private:
+ qreal previousAccelerationX, previousAccelerationY, previousAccelerationZ;
+ qreal calibrationX, calibrationY, calibrationZ;
- qreal getintervalTime();
+ CalibrateDialog *calibrateDialog;
-private slots:
- void processData();
- void smoothData(qreal x, qreal y, qreal z);
+ filereader* fileReader;
-private:
- qreal accelerationX, accelerationY, accelerationZ;
- qreal trueAccelerationX,trueAccelerationY,trueAccelerationZ;
- qreal previousAccelerationX,previousAccelerationY,previousAccelerationZ;
- qreal previousSpeed, currentSpeed;
- qreal currentAcceleration, previousAcceleration, totalAcceleration;
- QTime now;
- QTimer *timer;
- double intervalTime;
- double totalTime;
- double distanceTraveled,lastDistanceTraveled,averageSpeed;
- double sampleRate;
};
#endif // ACCELEROMETER_H