@@ -45,17 +45,6 @@ public class StepDcretor implements SensorEventListener {
45
45
//初始阈值
46
46
float ThreadValue = (float ) 2.0 ;
47
47
48
-
49
- float avg_v = 0 ;
50
- float min_v = 0 ;
51
- float max_v = 0 ;
52
-
53
- int acc_count = 0 ;
54
- int up_c = 0 ;
55
- int down_c = 0 ;
56
- long pre_time = 0 ;
57
-
58
-
59
48
private final String TAG = "StepDcretor" ;
60
49
// alpha 由 t / (t + dT)计算得来,其中 t 是低通滤波器的时间常数,dT 是事件报送频率
61
50
private final float alpha = 0.8f ;
@@ -167,57 +156,6 @@ public void onTick(long millisUntilFinished) {
167
156
168
157
}
169
158
170
-
171
- void avg_check_v (float v ) {
172
- acc_count ++;
173
- //求移动平均线
174
- //50ms 1 second 20 , 3 sec60;
175
- if (acc_count < 34 ) {
176
- //avg_v=((acc_count-1)*avg_v+v)/acc_count;
177
- avg_v = avg_v + (v - avg_v ) / acc_count ;
178
- } else {
179
- //avg_v=(avg_v*99+v)/100;
180
- avg_v = avg_v * 33 / 34 + v / 34 ;
181
- }
182
-
183
- if (v > avg_v ) {
184
- up_c ++;
185
- if (up_c == 1 ) {
186
- //Log.e("wokao","diff:"+(max_v-min_v));
187
- max_v = avg_v ;
188
- } else {
189
- max_v = Math .max (v , max_v );
190
- }
191
- if (up_c >= 2 ) {
192
- down_c = 0 ;
193
- }
194
- } else {
195
- down_c ++;
196
- if (down_c == 1 ) {
197
- min_v = v ;
198
- } else {
199
- min_v = Math .min (v , min_v );
200
- }
201
- if (down_c >= 2 ) {
202
- up_c = 0 ;
203
- }
204
- }
205
- //Log.e("wokao","avg_v:"+avg_v+",v:"+v+",uc"+up_c+",dc:"+down_c);
206
-
207
- if (up_c == 2 && (max_v - min_v ) > 2 ) {
208
- //
209
- long cur_time = System .currentTimeMillis ();
210
- if (cur_time - pre_time >= 500
211
- ) {
212
- pre_time = cur_time ;
213
- preStep ();
214
- Log .e ("xfblog" , "CURRENT_SETP:" + CURRENT_SETP );
215
- } else {
216
- up_c = 1 ;
217
- }
218
- }
219
- }
220
-
221
159
synchronized private void calc_step (SensorEvent event ) {
222
160
average = (float ) Math .sqrt (Math .pow (event .values [0 ], 2 )
223
161
+ Math .pow (event .values [1 ], 2 ) + Math .pow (event .values [2 ], 2 ));
@@ -329,10 +267,8 @@ public void DetectorNewStep(float values) {
329
267
* 2.例如记录的9步用户停住超过3秒,则前面的记录失效,下次从头开始
330
268
* 3.连续记录了9步用户还在运动,之前的数据才有效
331
269
* */
332
- StepDcretor .CURRENT_SETP ++;
333
- if (onSensorChangeListener != null ) {
334
- onSensorChangeListener .onChange ();
335
- }
270
+
271
+ preStep ();
336
272
}
337
273
if (timeOfNow - timeOfLastPeak >= 250
338
274
&& (peakOfWave - valleyOfWave >= initialValue )) {
0 commit comments