sДо того, как UIAccelerometer
устарел в iOS, я использовал данные x
, y
и z
из этого класса для расчета тангажа, крена и рыскания. Мне также пришлось выполнить некоторую фильтрацию, но теперь я вижу, что с библиотекой CoreMotion
я могу получить эти данные из CMAttitude
class и очень хотел бы использовать эти свойства, но почему-то не получается.
Теперь то, что я сделал, это создать экземпляр
CMMotionManager *motionManager;
CMDeviceMotion *deviceMotion;
CMAttitude *attitude;
...
deviceMotion = motionManager.deviceMotion;
attitude = deviceMotion.attitude;
motionManager.accelerometerUpdateInterval = 0.065; // 65ms
[motionManager startAccelerometerUpdates];
Я могу прочитать x, y и z из motionManager.accelerometerData.acceleration.<x,y or z>
, но попытка прочитать из attitude.<roll,pitch,yaw>
дает мне 0.
NSLog(@"Roll: %f", attitude.roll); // = 0
Я считываю значения в методе, запускаемом непрерывным таймером каждые 100 мс.
Любые идеи о том, что мне не хватает?