2011-09-29 9 views
0

자이로 스코프 피치, 롤 및 요우를받는 테스트 앱을 만들고 있습니다.자이로 스코프 업데이트가 시작되지 않습니다.

나는 그것이 것이라고 생각하는 것처럼이 코드는 작동하지 않습니다

: 그 출력은 이해가 안

2011-09-29 16:37:08.070 Gyro2[4014:607] Gyro Available? YES 
2011-09-29 16:37:08.074 Gyro2[4014:607] Gyro Active? NO 

- (void) enableGyro { 
    motionManager.deviceMotionUpdateInterval = 1.0/30.0; 
    if (motionManager.gyroAvailable) { 
     [motionManager startGyroUpdates]; 
    } 
    NSLog(@"Gyro Available? %@", (motionManager.gyroAvailable ? @"YES" : @"NO")); 
    NSLog(@"Gyro Active? %@", (motionManager.gyroActive ? @"YES" : @"NO")); 
} 

왜, 나는 자이로 업데이트를 시작할 때, 그것은 실제로 시작되지 않습니다.

+0

죄송합니다. 문제가 무엇인지 확실하지 않지만 방금 테스트 프로젝트를 다시 작성했는데 제대로 작동했습니다. 나는이 웹 사이트의 코드를 기반으로합니다 : http://cs491f10.wordpress.com/2010/10/28/core-motion-gyroscope-example/ – SamB

답변

0

, 당신은 그들이 종종 같은 값이됩니다 있지만 독립적으로 모든 센서의 업데이트 간격을 설정해야 .

대부분의 사람들은 칼만 필터 등으로 센서 데이터 처리를 처리하는 대신 장치의 현재 방향만을 처리하려고합니다. 그렇다면 Simple iPhone motion detect을 살펴보십시오.

CMMotionManager의 xxxActive 메소드의 값이 올바른 상태를보고하지 않은 유일한 상황은 백그라운드에서 앱을 넣고 모션 처리가 자체 NSThread 내에서 완료되었을 때 다시 활성화하는 경우입니다. 운영 체제가 수행하는 일부 작업과 관련이 있을지도 모릅니다. 트릭은 CMMotionManager 인스턴스를 해제하고 새 인스턴스를 할당하는 것입니다.

0

이 문서 (http://developer.apple.com/library/ios/#DOCUMENTATION/CoreMotion/Reference/CMMotionManager_Class/Reference/Reference.html), gyroActive는 사실의 뜻에 따라 당신이 전화 한 경우 startGyroUpdatesToQueue:withHandler: 또는 startGyroUpdates. startDeviceMotionUpdates은 자이로 스코프를 사용하지만 gyroActive을 설정하지 않습니다.

motionManager.gyroUpdateInterval = myGyroInterval; 
motionManager.accelerometerUpdateInterval = myAccelerometerInterval; 

deviceMotionUpdateInterval이 장치의 동작에만 바인딩 : 당신이 정말로 원시 편견 센서 데이터를 사용하려면

+0

또한 게시물에서 변경했습니다. – SamB

관련 문제