0

私の質問にコードがなくてすみません!加速度計の x 軸の読み取り値が特定のしきい値を超えたときにジャイロスコープの更新を開始するプログラムを実装したいと考えています。ジャイロスコープがアクティブになったら、加速度計の更新も停止する必要があります。私が計画した方法は、加速度計のデータをグローバル変数に取り、それを if 条件と比較することです。条件を満たしている場合、ジャイロの更新を開始し、加速度の更新を停止する信号を送信する必要がありますか?

加速度とジャイロの更新に関するコードを実装できますが、問題は、グローバル変数の値がしきい値を超えたときにジャイロ データを開始して加速度データを停止する方法がわからないことです。私を助けてください!

4

2 に答える 2

1

getter と setter を使用して変数を変更できます。セッターでは、必要な条件を確認できます。次に、たとえば、必要なしきい値に達したことに関する通知を投稿できます。

- (void) setNeededValue:(valueType)newValue;
{
    neededValue = newValue;

    if( neededValue > threshold )
    {
        [[NSNotificationCenter defaultCenter] postNotificationName: someConstStringAsNotificationName object: self];
    }
}

通知を受け取るには、呼び出して受け取りたいクラスでこのコードを使用します

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notificationHandler) name:someConstStringAsNotificationName object:nil];
于 2012-06-14T14:59:36.743 に答える
0

私にはいいですね、試してみる必要があります。擬似:

if ( globalVariable > thresholdValue ) {
    stopAccelData();
    startGyroData();
}
于 2012-06-14T14:59:24.280 に答える