0

我正在使用推送方法收集加速度计和陀螺仪数据( startDeviceMotionUpdatesToQueue:withHandler: 和 startGyroUpdatesToQueue:[NSOperationQueue mainQueue] 我将这些原始数据与某些阈值进行比较,如果它满足阈值,我确实将标签计数器增加一,我的问题是什么时候我开始检测,即读取方法并将其与阈值进行比较,计数器增加得如此之快,我已经读入(简单的 iPhone 运动检测)“如果条件对于每个运动都会变为真两次”,所以如果这是正在发生的事情和我一起,我该如何解决这个问题,我的代码很简单

检查数据{

if ( (  acc_2 >= 0.03885) &&  (gyro_3  >= 0.0003)  && (gyro_3 <= 0.00838))
{
    i=i+1;
    //then Label data
    _Counter.text=[NSString stringWithFormat:@"%d",i];

}

else if (( acc_2>= 0.01103) && ( gyro_3 >= 0.00851))
{
    /

    //update the counter
    i=i+1;
    _Counter.text=[NSString stringWithFormat:@"%d",i];

}

...... same other conditions

}

然后我在 startDeviceMotionUpdatesToQueue:withHandler: 块中调用这个方法。

[自检数据];

我该怎么做才能解决这个问题,你能指导我吗?}

4

1 回答 1

0

我不是 100% 确定这是否是您所要求的,但如果您希望更改从硬件接收更新的速率 a,这会减慢标签更新的速率(并节省电池),您可以使用 CMMotionManagersetGyroUpdateInterval:setDeviceMotionUpdateInterval:调整刷新率。值 1 每秒更新一次。

[_myMotionManager setDeviceMotionUpdateInterval:1];
[_myMotionManager setGyroUpdateInterval:1];
于 2013-08-29T19:23:19.560 回答