先说大概,我用了switch语句在传感器数据变化时去同等选择传感器,但是最后测得的加速度参数却比陀螺仪参数多,而且总是多最开始的大概10组XYZ数据。
具体如下:
http://blog.csdn.net/tangcheng_ok/article/details/6590493
获取传感器参数的代码我是找到了(非常感谢这位博主)
但是在实际写入sdcard时
public void onSensorChanged(SensorEvent event) {
try{
String str = "";
for(i = 0; i < 3; i++)
str += event.values[i] + " ";
str += "\n";
switch(event.sensor.getType()){
case Sensor.TYPE_GYROSCOPE:
writeFileSdCardFile(gyrfile, str);
一个是加速度传感器,另一个是陀螺仪传感器,在记录好txt后发现参数长度不同,而且每次都是加速度数据多。为了求证两组数据的对应性,我在选择传感器 switch(event.sensor.getType())之前加了一个count进行累加,然后也将count写入txt。
结果发现有趣的事情:
这是加速度的数据 四列分别对应XYZ加速度和count
-0.1774292 4.062561 8.800705 0
-0.15782166 4.062561 8.918381 1
-0.098983765 4.003723 8.996826 2
-0.13819885 4.0429535 8.918381 3
-0.13819885 4.0429535 8.8203125 4
-0.059753418 4.003723 8.781082 5
-0.15782166 4.121399 8.781082 6
-0.2558899 4.2783203 8.87915 7
-0.37356567 4.2783203 9.016449 8
-0.33433533 4.23909 9.016449 9
-0.27549744 4.2783203 8.87915 10
-0.21665955 4.219467 8.937988 11
-0.040130615 4.1606293 8.741852 13
0.13638306 4.082184 8.42804 15
0.29328918 4.0429535 8.310364 17
0.31289673 3.9448853 8.46727 19
0.33251953 3.8664398 8.565338 21
0.31289673 3.7879791 8.42804 23
0.25405884 3.8075867 8.42804 25
0.13638306 3.8664398 8.349594 27
0.057937622 3.9252777 8.153458 29
-0.11859131 4.082184 8.114227 31
这是陀螺仪数据
-0.06515503 0.02671814 0.15434265 12
-0.027282715 -0.01725769 0.16046143 14
-4.119873E-4 -0.009933472 0.15434265 16
-0.056610107 0.064590454 0.13479614 18
-0.079818726 0.0975647 0.11891174 20
-0.06515503 0.13301086 0.10424805 22
-0.051712036 0.104904175 0.07859802 24
-0.08958435 0.07801819 0.0541687 26
-0.12258911 0.060928345 0.039505005 28
-0.12135315 0.07557678 0.059051514 30
到最后加速度和陀螺仪都是交替出现,也就是说加速度参数多了一开始的连续数据
因此我又将加速度和陀螺仪的监听注册顺序换了、将switch传感器类型的顺序换了,结果并没有变化,然后,然后就蒙了。
所以,有人经历过类似的问题,或者知道问题出在哪吗?
求给个建议或思路,虽然不影响数据收集,但还是想满足下好奇心。
没有做过这方面的,不过听你的描述有点像是多线程导致的问题,所以先问下你这部分操作有用到线程吗?