天天看点

How-to: 利用Web Camera模拟Windows Phone 7的重力加速度传感器

引言

        目前,对于我们国内大多数的Windows Phone 7开发者来说,模拟器是调试程序的唯一选择。因此,和硬件相关的一些功能就没有办法进行测试。加速度传感器是Windows Phone 7中一个基本的传感器,很多应用软件和游戏软件都需要用到它,因此,使用其他手段来模拟重力加速度传感器是一个十分有用的尝试。

线索

准备工作

        1. 安装Windows Phone 7的开发工具,这个我就不再啰嗦了。

        2. 网络摄像头一个,普通的就可以。

        4. 解压AccelKit以后,里面包括EmuClasses、Executable、src这三个文件夹和Print_This_Cutout这个pdf文件。EmuClasses文件夹中的文件可以引入到我们的应用程序中,实现加速度传感器数值的读取;Executable文件夹中的文件用来运行在桌面PC上,控制摄像头,并保存数据;src中的文件是对应的控制摄像头程序的源程序。

        5. 将Print_This_Cutout.pdf文件打印,并用剪刀剪裁其中一个Windows Phone 7的面板,将其固定于一块板子上。

开始测试

        1. 启动Executable文件夹中的accelKit.exe文件,开启摄像头。

        2. 开启Windows Phone 7模拟器,运行带有加速度传感器的应用程序。

        3. 在摄像头前晃动带有Windows Phone 7面板的板子,检验效果。

How-to: 利用Web Camera模拟Windows Phone 7的重力加速度传感器

实现原理

        我们在写Windows Phone 7的应用程序时,利用WebClient来获取88端口的数据:

        ..

       WebClient wc;

       wc = new WebClient();

       wc.AllowReadStreamBuffering = false;

       wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wc_DownloadStringCompleted);

       ..

      void wc_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)

     { 

        if (e.Error != null) { timer.Begin(); return; }

        if (e.Result == null) { timer.Begin(); return; }

        string[] vc = e.Result.Split(new Char[] {',', ' '});

        double x = Convert.ToDouble(vc[0]);

        double y = Convert.ToDouble(vc[1]);

        double z = Convert.ToDouble(vc[2]);

    }

    具体可以参考EmuClasses文件中的文件。

注意

1. 目前该方法只实现了重力加速度,没有实现运动方向的加速度,即给出的X/Y/Z这三个值是在垂直方向上的加速度。

2. PC机上运行的摄像头程序会比较耗费CPU资源,建议分辨率不用调太高,可以识别就行。

参考链接:

<a href="http://www.cnblogs.com/twodays/archive/2010/08/03/gps_and_accelerameter_for_windows_phone_emulator.html">给你的Windows Phone 7模拟器加入GPS和加速度传感器模拟功能</a>

<a href="http://www.charlespetzold.com/phone/">Programming Windows Phone 7</a>

<a href="http://accelkit.codeplex.com/">http://accelkit.codeplex.com/</a>

<a href="http://www.tainicom.net/devTools/accelKit/">http://www.tainicom.net/devTools/accelKit/</a>

PS:

本文转自施炯博客园博客,原文链接:http://www.cnblogs.com/dearsj001/archive/2010/11/26/AccelerometerEmulatorForWP7.html,如需转载请自行联系原作者