【问题标题】:update frequency set for deviceMotionUpdateInterval it's the actual frequency?为 deviceMotionUpdateInterval 设置的更新频率是实际频率吗?
【发布时间】:2011-10-10 07:19:43
【问题描述】:

分析deviceMotion.timestamp发现DeviceMotion中设置的更新频率并不是实际的更新频率。

我实现了一个应用程序来测试,低于我所看到的!

    update frequency     actual frequency       average time between two calls
       1/10.000000          10.232265              0.097730
       1/20.000000          19.533729              0.051194
       1/30.000000          30.696613              0.032577
       1/40.000000          42.975122              0.023269
       1/50.000000          53.711000              0.018618
       1/60.000000          53.719106              0.018615
       1/70.000000          71.627016              0.013961
       1/80.000000          71.627263              0.013961
       1/90.000000          53.719365              0.018615
       1/100.000000        107.442667              0.009307
       1/110.000000        107.437022              0.009308

有人注意到了同样的事情吗? 这是一个错误?

【问题讨论】:

    标签: iphone core-motion


    【解决方案1】:

    有些人报告了同样的现象,例如Actual frequency of device motion updates lower than expected, but scales up with setting,但仍然没有答案。令人惊讶的是,您是第一个报告更高实际频率的人。我对此进行了几次测试,你走哪条路并没有真正的区别。

    • 推送或拉取,即处理程序回调或自己的计时器循环
    • iOS 4.2x、iOS 4.3x([更新:]仅通过 pull 测试)
    • 原始传感器数据或设备运动
    • 陀螺仪或加速度计
    • 在单独的线程中运行它

    我认为这是 Core Motion 框架中的一个小错误。

    【讨论】:

    • 我正在使用推送(我在文档中读到它是获取数据的更准确方法),iOS 4.3x iPhone4,只是在 DeviceMotion 中,如果我使用,实际频率与该设置不同[CMMotionManager startAccelerometerUpdatesToQueue:[NSOperationQueue currentQueue] withHandler:^(CMAccelerometerData *accelerometerData, NSError *error) 一切正常,实际频率与我设置的相同,CoreMotion 创建自己的线程:处理来自传感器的原始数据并运行设备运动算法(我正在阅读幻灯片 WWDC 2010/2011)
    • Raw Accelerometer Data 使用 push 方法抓取它。 [1/40.000000 4 0.01470S 0.0143980S 0.01430 1/80.000000 79.321895 0.012607] [1/90.000000 88.883474 0.011251] [1/100.000000 98.643989 0.010137]
    • 所以你理解对了,你现在已经通过使用 NSOperationQueue 解决了这个问题?如果是这样,我建议您编辑您的问题并将解决方案粘贴到最后。因此其他人一眼就能看出解决方案。
    • 我还没有解决问题,但是我测试了问题只出在DeviceMotion(userAcceleration,姿态,rotationRate,gravity)中,而不在CMAccelerometerData和CMGyroData中
    • 啊,我明白了——抱歉没有准确地阅读;)也许我没有在 iOS 4.3 上运行这个组合。我在自己的线程中使用 pull 方法来获得更多控制权。无论如何,有价值的信息我投票赞成你的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多