Browse Source

Log magnetic field sensors too

tags/SensorLogger/0.1
Chris Smith 14 years ago
parent
commit
69ec402366

+ 1
- 1
code/SensorLogger/AndroidManifest.xml View File

@@ -1,6 +1,6 @@
1 1
 <?xml version="1.0" encoding="UTF-8"?>
2 2
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
3
-     package="uk.co.md87.android.sensorlogger" android:versionCode="5" android:versionName="0.1">
3
+     package="uk.co.md87.android.sensorlogger" android:versionCode="6" android:versionName="0.1">
4 4
     <application android:label="Sensor Logger">
5 5
          <activity android:name=".MainActivity" android:label="Sensor Logger">
6 6
             <intent-filter>

BIN
code/SensorLogger/dist/SensorLogger.apk View File


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

@@ -36,7 +36,7 @@ public class SensorLoggerService extends Service {
36 36
     private OutputStreamWriter writer;
37 37
 
38 38
     private int i = 0;
39
-    private float[] accelValues;
39
+    private float[] accelValues, magValues;
40 40
 
41 41
     private final SensorEventListener accelListener = new SensorEventListener() {
42 42
 
@@ -54,16 +54,39 @@ public class SensorLoggerService extends Service {
54 54
 
55 55
     };
56 56
 
57
+    private final SensorEventListener magneticListener = new SensorEventListener() {
58
+
59
+        /** {@inheritDoc} */
60
+        @Override
61
+        public void onSensorChanged(final SensorEvent event) {
62
+            setMagValues(event.values);
63
+        }
64
+
65
+        /** {@inheritDoc} */
66
+        @Override
67
+        public void onAccuracyChanged(final Sensor sensor, final int accuracy) {
68
+            // Don't really care
69
+        }
70
+
71
+    };
72
+
57 73
     public void setAccelValues(float[] accelValues) {
58 74
         this.accelValues = accelValues;
59 75
     }
60 76
 
77
+    public void setMagValues(float[] magValues) {
78
+        this.magValues = magValues;
79
+    }
80
+
61 81
     public void write() {
62 82
         try {
63 83
             writer.write(System.currentTimeMillis() + ":" +
64 84
                     accelValues[SensorManager.DATA_X] + "," +
65 85
                     accelValues[SensorManager.DATA_Y] + "," +
66
-                    accelValues[SensorManager.DATA_Z] + "\n");
86
+                    accelValues[SensorManager.DATA_Z] + "," +
87
+                    magValues[SensorManager.DATA_X] + "," +
88
+                    magValues[SensorManager.DATA_Y] + "," +
89
+                    magValues[SensorManager.DATA_Z] + "," + "\n");
67 90
 
68 91
             if (++i % 50 == 0) {
69 92
                 writer.flush();
@@ -103,6 +126,9 @@ public class SensorLoggerService extends Service {
103 126
         manager.registerListener(accelListener,
104 127
                 manager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
105 128
                 SensorManager.SENSOR_DELAY_FASTEST);
129
+        manager.registerListener(magneticListener,
130
+                manager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD),
131
+                SensorManager.SENSOR_DELAY_FASTEST);
106 132
 
107 133
         Toast.makeText(getApplicationContext(), "Sensor logger service started",
108 134
                 Toast.LENGTH_SHORT).show();

Loading…
Cancel
Save