|
@@ -20,6 +20,8 @@ import java.io.FileNotFoundException;
|
20
|
20
|
import java.io.FileOutputStream;
|
21
|
21
|
import java.io.IOException;
|
22
|
22
|
import java.io.OutputStreamWriter;
|
|
23
|
+import java.util.Timer;
|
|
24
|
+import java.util.TimerTask;
|
23
|
25
|
|
24
|
26
|
/**
|
25
|
27
|
*
|
|
@@ -33,33 +35,15 @@ public class SensorLoggerService extends Service {
|
33
|
35
|
private FileOutputStream stream;
|
34
|
36
|
private OutputStreamWriter writer;
|
35
|
37
|
|
36
|
|
- private final SensorEventListener accelListener = new SensorEventListener() {
|
|
38
|
+ private int i = 0;
|
|
39
|
+ private float[] accelValues;
|
37
|
40
|
|
38
|
|
- private int i = 0;
|
|
41
|
+ private final SensorEventListener accelListener = new SensorEventListener() {
|
39
|
42
|
|
40
|
43
|
/** {@inheritDoc} */
|
41
|
44
|
@Override
|
42
|
45
|
public void onSensorChanged(final SensorEvent event) {
|
43
|
|
- try {
|
44
|
|
- writer.write(System.currentTimeMillis() + ":" +
|
45
|
|
- event.values[SensorManager.DATA_X] + "," +
|
46
|
|
- event.values[SensorManager.DATA_Y] + "," +
|
47
|
|
- event.values[SensorManager.DATA_Z] + "\n");
|
48
|
|
-
|
49
|
|
- if (++i == 10) {
|
50
|
|
- writer.flush();
|
51
|
|
-
|
52
|
|
- if (++i == 1000) {
|
53
|
|
- // Auto upload!
|
54
|
|
-
|
55
|
|
- stopSelf();
|
56
|
|
- startService(new Intent(SensorLoggerService.this,
|
57
|
|
- UploaderService.class));
|
58
|
|
- }
|
59
|
|
- }
|
60
|
|
- } catch (IOException ex) {
|
61
|
|
-
|
62
|
|
- }
|
|
46
|
+ setAccelValues(event.values);
|
63
|
47
|
}
|
64
|
48
|
|
65
|
49
|
/** {@inheritDoc} */
|
|
@@ -70,6 +54,35 @@ public class SensorLoggerService extends Service {
|
70
|
54
|
|
71
|
55
|
};
|
72
|
56
|
|
|
57
|
+ public void setAccelValues(float[] accelValues) {
|
|
58
|
+ this.accelValues = accelValues;
|
|
59
|
+ }
|
|
60
|
+
|
|
61
|
+ public void write() {
|
|
62
|
+ try {
|
|
63
|
+ writer.write(System.currentTimeMillis() + ":" +
|
|
64
|
+ accelValues[SensorManager.DATA_X] + "," +
|
|
65
|
+ accelValues[SensorManager.DATA_Y] + "," +
|
|
66
|
+ accelValues[SensorManager.DATA_Z] + "\n");
|
|
67
|
+
|
|
68
|
+ if (++i % 50 == 0) {
|
|
69
|
+ writer.flush();
|
|
70
|
+
|
|
71
|
+ if (i % 1000 == 0) {
|
|
72
|
+ upload();
|
|
73
|
+ }
|
|
74
|
+ }
|
|
75
|
+ } catch (IOException ex) {
|
|
76
|
+ // Ignore
|
|
77
|
+ }
|
|
78
|
+ }
|
|
79
|
+
|
|
80
|
+ public void upload() {
|
|
81
|
+ stopSelf();
|
|
82
|
+ startService(new Intent(SensorLoggerService.this,
|
|
83
|
+ UploaderService.class));
|
|
84
|
+ }
|
|
85
|
+
|
73
|
86
|
@Override
|
74
|
87
|
public IBinder onBind(Intent arg0) {
|
75
|
88
|
return new Binder();
|
|
@@ -93,6 +106,13 @@ public class SensorLoggerService extends Service {
|
93
|
106
|
|
94
|
107
|
Toast.makeText(getApplicationContext(), "Sensor logger service started",
|
95
|
108
|
Toast.LENGTH_SHORT).show();
|
|
109
|
+
|
|
110
|
+ new Timer("Data logger").scheduleAtFixedRate(new TimerTask() {
|
|
111
|
+ @Override
|
|
112
|
+ public void run() {
|
|
113
|
+ write();
|
|
114
|
+ }
|
|
115
|
+ }, 0, 50);
|
96
|
116
|
}
|
97
|
117
|
|
98
|
118
|
@Override
|