WP7:将加速度计和指南针数据转换为模拟运动 API
我正在为 Windows Phone 7.1 (Mango) 编写一个小型示例应用程序,并希望使用组合运动 API 来显示设备的运动。我需要编写模拟类,以便在使用不支持设备所有传感器的模拟器时能够测试我的应用程序。
我已经编写了一个简单的模拟类来模拟指南针(它只是模拟旋转设备)和模拟器中实际可用的加速度计。
现在我必须为 Motion API 编写一个新的模拟对象,但我希望我可以使用指南针和加速度计的值来计算用于 Motion 对象的值。不幸的是,我没有找到已经执行此操作的简单转换示例。
有人知道执行此转换的代码示例吗?尽管这很复杂,但如果已经有解决方案,我不想自己做这件事。
I'm writing a small sample application for the Windows Phone 7.1 (Mango) and want to use the Combined Motion API to display the motion of the device. I need to write mock classes to be able to test my application when using the emulator which does not support all sensors of the device.
I already wrote a simple mock class to simulate a compass (it just simulates a rotating device) and for the accelerometer which is actually available in the emulator.
Now I would have to write a new mock object for the Motion API but I hope that I could calculate the values that are used for the Motion object using the values from compass and accelerometer. Unfortunately I found no sample for a simple conversion that is already doing this.
Does anybody know a code sample that does this conversion? As complex as this will be I wouldn't like to do this by myself, if there is already a solution.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
现在 Windows Phone 8 已经发布,而且我还没有手机可以测试,我又遇到了同样的问题。
非常类似于 WP7 Mock Microsoft.Devices.Sensors 的答案.使用模拟器时的指南针,我创建了与 Motion 具有相同方法的包装类API。当实际的 Motion API 支持时,就会使用它。否则,在调试模式下,将返回改变横滚、俯仰和偏航的模拟数据。
MotionWrapper
MockMotionWrapper
MockMotionReading
MockAttitudeReading
I've run into the same issue again now that Windows Phone 8 is out and I don't have a handset to test with yet.
Much like the answer to WP7 Mock Microsoft.Devices.Sensors.Compass when using the emulator, I've created a wrapper class with the same methods as the Motion API. When the actual Motion API is supported it is used. Otherwise, in debug mode, mock data is returned that varies the roll, pitch, and yaw.
MotionWrapper
MockMotionWrapper
MockMotionReading
MockAttitudeReading
进行 Mockup 工作的一个良好起点是查看 Motion API 及其内部工作原理以及 API 核心使用哪些参数:
http://msdn.microsoft.com/en-us/library/hh202984%28VS.92%29.aspx
在继续之前,请记住 Motion API 是复杂的数学运算模型结合了不同手机传感器的输入。您可以找到许多不同的模型来通过组合加速度、位置和旋转来计算运动。您可以在本文中找到一个很好的描述:
http://www.instructables.com/id/Accelerometer-Gyro-Tutorial/
所以实际上,你必须使用上面文章中所示的方程和函数,然后计算价值观靠你自己。
这一切都不是简单的事情,但以这种方式是可能的。
我希望我能够帮助您:),如果您已经做到了,请让社区知道。我认为 Codeplex 项目可以为 Windows Phone Motion API 编写一种模拟实用程序。
A good starting point for doing your Mockup work is to have a look at the Motion API and how it works internally and which parameters are used by the API core:
http://msdn.microsoft.com/en-us/library/hh202984%28VS.92%29.aspx
Before you go on, have in mind that the Motion API is complex mathematical model which combines the inputs of the different phone sensors. You can find many different models to calculate motion by combining acceleration, position and rotation.. one good description you can find in this article:
http://www.instructables.com/id/Accelerometer-Gyro-Tutorial/
So in fact, you have to use the equations and functions shown in the article above and then calculate the values on your own.
It is everything else than a simple thing, but possible this way.
I hope i was able to help you :) and let the community know, if you've done it. I think a codeplex project would be nice to write a kind of mocking utilites for windows phone motion API.