From aec1432898504016de3fb769b27ad4b8ca4224fc Mon Sep 17 00:00:00 2001 From: Rikhard Kuutti Date: Fri, 5 Mar 2010 13:06:24 +0200 Subject: [PATCH] Fixed errors in accelerometer class --- Client/accelerometer.cpp | 65 ++++++++++++++++++++++++++++++---------------- Client/accelerometer.h | 11 +++++--- 2 files changed, 50 insertions(+), 26 deletions(-) diff --git a/Client/accelerometer.cpp b/Client/accelerometer.cpp index 7b2531a..1a36361 100644 --- a/Client/accelerometer.cpp +++ b/Client/accelerometer.cpp @@ -67,27 +67,31 @@ void Accelerometer::start() */ void Accelerometer::initValues() { - accelerationX=0; - accelerationY=0; - accelerationZ=0; - trueAccelerationX=0; - trueAccelerationY=0; - trueAccelerationZ=0; - previousAccelerationX=0; - previousAccelerationY=0; - previousAccelerationZ=0; - previousSpeed=0; - currentSpeed=0; - currentAcceleration=0; - previousAcceleration=0; - totalAcceleration=0; - intervalTime=0; - totalTime=0; - distanceTraveled=0; - lastDistanceTraveled=0; - averageSpeed=0; - sampleRate=0; - reverseAcceleration = false; + calculate->reset(); + accelerationX = 0; + accelerationY = 0; + accelerationZ = 0; + trueAccelerationX = 0; + trueAccelerationY = 0; + trueAccelerationZ = 0; + previousAccelerationX = 0; + previousAccelerationY = 0; + previousAccelerationZ = 0; + previousSpeed = 0; + currentSpeed = 0; + currentAcceleration = 0; + previousAcceleration = 0; + totalAcceleration = 0; + intervalTime = 0; + totalTime = 0; + distanceTraveled = 0; + lastDistanceTraveled = 0; + averageSpeed = 0; + sampleRate = 0; + firstRun = true; + calibrationX = 0; + calibrationY = 0; + calibrationZ = 0; } /** @@ -228,6 +232,21 @@ qreal Accelerometer::getTotalTime() return totalTime; } +int Accelerometer::getCalibrationX() +{ + return calibrationX; +} + +int Accelerometer::getCalibrationY() +{ + return calibrationY; +} + +int Accelerometer::getCalibrationZ() +{ + return calibrationZ; +} + /** * Processes Accelerometer data * @@ -316,10 +335,12 @@ void Accelerometer::smoothData(qreal x, qreal y, qreal z) accelerationX = x; accelerationY = y; accelerationZ = z; - if(sampleIndex>0) { + if (sampleIndex > 0) + { accelerationX = previousAccelerationX + (accelerationX-previousAccelerationX) * kFilteringFactor; accelerationY = previousAccelerationY + (accelerationY-previousAccelerationY) * kFilteringFactor; accelerationZ = previousAccelerationZ + (accelerationZ-previousAccelerationZ) * kFilteringFactor; } sampleIndex++; } + diff --git a/Client/accelerometer.h b/Client/accelerometer.h index 31e5588..52990df 100644 --- a/Client/accelerometer.h +++ b/Client/accelerometer.h @@ -40,9 +40,9 @@ public: qreal getTotalAcceleration(); qreal getPreviousTotalAcceleration(); - int calibrationX; - int calibrationY; - int calibrationZ; + int getCalibrationX(); + int getCalibrationY(); + int getCalibrationZ(); qreal getIntervalTime(); qreal getTotalTime(); @@ -60,6 +60,8 @@ private: qreal previousSpeed, currentSpeed; qreal currentAcceleration, previousAcceleration, totalAcceleration; + int calibrationX, calibrationY, calibrationZ; + QTime now; QTimer *timer; @@ -70,7 +72,8 @@ private: double averageSpeed; double sampleRate; - bool reverseAcceleration; + bool firstRun; }; #endif // ACCELEROMETER_H + -- 1.7.9.5