2013-08-29 27 views
0

我正在使用推送方法收集加速度計和陀螺儀數據(startDeviceMotionUpdatesToQueue:withHandler:and startGyroUpdatesToQueue: [NSOperationQueue mainQueue] 我比較這些原始數據與某些閾值,如果它滿足閾值,我確實增加了一個標籤計數器,我的問題是當我開始檢測,即讀取方法並將其與閾值進行比較時,計數器增加快速,我已經在(Simple iPhone motion detect)中讀到「如果條件會成爲每個單一議案兩次真」,所以如果這是我正在發生的事情,我該如何解決問題,我的代碼很簡單如果加速度計x,y,z和陀螺儀x,y,z的條件給了我一個非常快的結果,我認爲它更真實

checkData {

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:塊。

[self checkData];

我該怎麼辦才能解決這個問題,你能指導我嗎? }

回答

0

我不是100%確定這是否是您要求的,但是如果您希望更改從硬件接收更新的速率a,這會降低您的速度標籤更新(並節省電池),您可以使用CMMotionManager的setGyroUpdateInterval:setDeviceMotionUpdateInterval:來調整刷新率。值爲1每秒更新一次。

[_myMotionManager setDeviceMotionUpdateInterval:1]; 
[_myMotionManager setGyroUpdateInterval:1]; 
+0

我有兩個updateIntervalset爲1/30,而我需要頻繁讀取,但是這是什麼引起我的標籤,然後從0到6月18日,然後28我覺得標籤的更新是如此之高跳,這個問題中提到的筆記(關於if)讓我想知道,如果這是導致櫃檯這種跳躍的原因。 – Dina

相關問題