Browse Source

Log orientation data

Closes #27
tags/SensorLogger/0.2.0
Chris Smith 14 years ago
parent
commit
e583d09943

+ 29
- 2
code/SensorLogger/src/uk/co/md87/android/sensorlogger/SensorLoggerService.java View File

@@ -41,7 +41,8 @@ public class SensorLoggerService extends Service {
41 41
     private Timer timer;
42 42
 
43 43
     private volatile int i = 0;
44
-    private float[] accelValues = new float[3], magValues = new float[3];
44
+    private float[] accelValues = new float[3],
45
+            magValues = new float[3], orientationValues = new float[3];
45 46
 
46 47
     private final SensorEventListener accelListener = new SensorEventListener() {
47 48
 
@@ -75,6 +76,22 @@ public class SensorLoggerService extends Service {
75 76
 
76 77
     };
77 78
 
79
+    private final SensorEventListener orientationListener = new SensorEventListener() {
80
+
81
+        /** {@inheritDoc} */
82
+        @Override
83
+        public void onSensorChanged(final SensorEvent event) {
84
+            setOrientationValues(event.values);
85
+        }
86
+
87
+        /** {@inheritDoc} */
88
+        @Override
89
+        public void onAccuracyChanged(final Sensor sensor, final int accuracy) {
90
+            // Don't really care
91
+        }
92
+
93
+    };
94
+
78 95
     public void setAccelValues(float[] accelValues) {
79 96
         this.accelValues = accelValues;
80 97
     }
@@ -83,6 +100,10 @@ public class SensorLoggerService extends Service {
83 100
         this.magValues = magValues;
84 101
     }
85 102
 
103
+    public void setOrientationValues(float[] orientationValues) {
104
+        this.orientationValues = orientationValues;
105
+    }
106
+
86 107
     public void write() {
87 108
         try {
88 109
             writer.write(System.currentTimeMillis() + ":" +
@@ -91,7 +112,10 @@ public class SensorLoggerService extends Service {
91 112
                     accelValues[SensorManager.DATA_Z] + "," +
92 113
                     magValues[SensorManager.DATA_X] + "," +
93 114
                     magValues[SensorManager.DATA_Y] + "," +
94
-                    magValues[SensorManager.DATA_Z] + "," + "\n");
115
+                    magValues[SensorManager.DATA_Z] + "," +
116
+                    orientationValues[SensorManager.DATA_X] + "," +
117
+                    orientationValues[SensorManager.DATA_Y] + "," +
118
+                    orientationValues[SensorManager.DATA_Z] + "," + "\n");
95 119
 
96 120
             if (++i % 50 == 0) {
97 121
                 writer.flush();
@@ -140,6 +164,9 @@ public class SensorLoggerService extends Service {
140 164
         manager.registerListener(magneticListener,
141 165
                 manager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD),
142 166
                 SensorManager.SENSOR_DELAY_FASTEST);
167
+        manager.registerListener(orientationListener,
168
+                manager.getDefaultSensor(Sensor.TYPE_ORIENTATION),
169
+                SensorManager.SENSOR_DELAY_FASTEST);
143 170
 
144 171
         timer = new Timer("Data logger");
145 172
 

Loading…
Cancel
Save