浏览代码

Log orientation data

Closes #27
tags/SensorLogger/0.2.0
Chris Smith 14 年前
父节点
当前提交
e583d09943
共有 1 个文件被更改,包括 29 次插入2 次删除
  1. 29
    2
      code/SensorLogger/src/uk/co/md87/android/sensorlogger/SensorLoggerService.java

+ 29
- 2
code/SensorLogger/src/uk/co/md87/android/sensorlogger/SensorLoggerService.java 查看文件

41
     private Timer timer;
41
     private Timer timer;
42
 
42
 
43
     private volatile int i = 0;
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
     private final SensorEventListener accelListener = new SensorEventListener() {
47
     private final SensorEventListener accelListener = new SensorEventListener() {
47
 
48
 
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
     public void setAccelValues(float[] accelValues) {
95
     public void setAccelValues(float[] accelValues) {
79
         this.accelValues = accelValues;
96
         this.accelValues = accelValues;
80
     }
97
     }
83
         this.magValues = magValues;
100
         this.magValues = magValues;
84
     }
101
     }
85
 
102
 
103
+    public void setOrientationValues(float[] orientationValues) {
104
+        this.orientationValues = orientationValues;
105
+    }
106
+
86
     public void write() {
107
     public void write() {
87
         try {
108
         try {
88
             writer.write(System.currentTimeMillis() + ":" +
109
             writer.write(System.currentTimeMillis() + ":" +
91
                     accelValues[SensorManager.DATA_Z] + "," +
112
                     accelValues[SensorManager.DATA_Z] + "," +
92
                     magValues[SensorManager.DATA_X] + "," +
113
                     magValues[SensorManager.DATA_X] + "," +
93
                     magValues[SensorManager.DATA_Y] + "," +
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
             if (++i % 50 == 0) {
120
             if (++i % 50 == 0) {
97
                 writer.flush();
121
                 writer.flush();
140
         manager.registerListener(magneticListener,
164
         manager.registerListener(magneticListener,
141
                 manager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD),
165
                 manager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD),
142
                 SensorManager.SENSOR_DELAY_FASTEST);
166
                 SensorManager.SENSOR_DELAY_FASTEST);
167
+        manager.registerListener(orientationListener,
168
+                manager.getDefaultSensor(Sensor.TYPE_ORIENTATION),
169
+                SensorManager.SENSOR_DELAY_FASTEST);
143
 
170
 
144
         timer = new Timer("Data logger");
171
         timer = new Timer("Data logger");
145
 
172
 

正在加载...
取消
保存