Route and Results buttons updated.
[speedfreak] / Client / accelerometer.cpp
index 8daf06f..9bfd904 100644 (file)
@@ -3,6 +3,7 @@
  *
  * @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
  */
@@ -14,6 +15,7 @@
 #include <QDBusPendingReply>
 
 #define kFilteringFactor 0.2
+#define kIterations      100
 
 /**
  * Default constructor for Accelerometer class
@@ -22,6 +24,7 @@
 Accelerometer::Accelerometer()
 {
     initValues();
+    calibrateDialog = NULL;
 }
 
 /**
@@ -30,6 +33,8 @@ Accelerometer::Accelerometer()
  */
 Accelerometer::~Accelerometer()
 {
+    if(calibrateDialog)
+        delete calibrateDialog;
 }
 
 /**
@@ -56,7 +61,13 @@ void Accelerometer::calibrate(void)
     unsigned int iteration = 0;
     qreal sampleX, sampleY, sampleZ;
 
+    calibrateDialog = new CalibrateDialog();
+    calibrateDialog->show();
+    calibrateDialog->resetProgressValue();
+    calibrateDialog->setMaxValue( kIterations + 1 );
+
     do {
+        calibrateDialog->setProgressValue(iteration);
 
         getAcceleration(sampleX, sampleY, sampleZ);
 
@@ -66,11 +77,13 @@ void Accelerometer::calibrate(void)
 
         iteration++;
 
-    } while(iteration != 1024);        // 1024 times
+    } while(iteration != kIterations);        // kIterations times
+
+    calibrationX = calibrationX/kIterations;  // division by kIterations
+    calibrationY = calibrationY/kIterations;
+    calibrationZ = calibrationZ/kIterations;
 
-    calibrationX = calibrationX/1024;  // division by 1024
-    calibrationY = calibrationY/1024;
-    calibrationZ = calibrationZ/1024;
+    calibrateDialog->close();
 }
 
 /**