|
@@ -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
|
|