国产一区二区精品在线_午夜精品视频_亚洲国产高清高潮精品美女_久久久91_午夜精品视频_久久久久亚洲一区二区三区

利用Web Camera模擬Windows Phone 7的重力加速度傳感器

來源:網絡

點擊:1991

A+ A-

所屬頻道:新聞中心

關鍵詞: Windows-Mobile,重力加速度傳感器

      引言

      目前,對于我們國內大多數的Windows Phone 7開發者來說,模擬器是調試程序的唯一選擇。因此,和硬件相關的一些功能就沒有辦法進行測試。加速度傳感器是Windows Phone 7中一個基本的傳感器,很多應用軟件和游戲軟件都需要用到它,因此,使用其他手段來模擬重力加速度傳感器是一個十分有用的嘗試。

      線索

      在今年8月,Windows Phone 7開發工具還是Beta版本的時候,山羊胡大叔的Blog《給你的Windows Phone 7模擬器加入GPS和加速度傳感器模擬功能》中,已經給出了一種途徑,其方法是:使用一臺真實的HD2來獲取加速度傳感器的數據,然后把這些數據再傳回WCF服務;同時Windows Phone 7的應用程序通過這個WCF服務來獲取加速度傳感器的值。由于手頭沒有HD2設備,所以就無法去嘗試和驗證這個方法。

      兩個月之后,距離Windows Phone 7正式版本的開發工具發布后不久,Charles Petzold給出了他的電子書《Programming Windows Phone 7》,提供廣大開發者們免費下載。他在前言中就提到了如何在Windows Phone 7模擬器中實現加速度傳感器的方法。本文根據Charles Petzold給出的提示信息進行了驗證,試想一下,用一個攝像頭就可以模擬加速度傳感器,真是挺有趣的。

      準備工作

      1. 安裝Windows Phone 7的開發工具,這個我就不再啰嗦了。

      2. 網絡攝像頭一個,普通的就可以。

      3. 去Codeplex網站下載開源項目AccelKit,網址為:http://accelkit.codeplex.com/。

      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面板的板子,檢驗效果。

      1

     

      實現原理

      攝像頭對捕捉到的圖像進行分析,識別Windows Phone 7面板的移動加速度,按照一定的時間間隔發送給本地的端口:http://127.0.0.1:88/。

      我們在寫Windows Phone 7的應用程序時,利用WebClient來獲取88端口的數據:

      。.

      WebClient wc;

      wc = new WebClient();

      wc.AllowReadStreamBuffering = false;

      wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wc_DownloadStringCompleted);

      wc.DownloadStringAsync(new Uri(http://127.0.0.1:88/));

      。.

      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資源,建議分辨率不用調太高,可以識別就行。

    (審核編輯: 智匯小新)

    聲明:除特別說明之外,新聞內容及圖片均來自網絡及各大主流媒體。版權歸原作者所有。如認為內容侵權,請聯系我們刪除。

    主站蜘蛛池模板: 麻豆国产一区 | 色婷婷视频在线 | 日本在线网 | 成年人午夜免费视频 | 国产亚洲精品美女久久久 | 九九自拍视频 | 日本一区二区三区免费观看 | 日韩三级视频在线播放 | 成人综合在线视频 | www.国产在线视频 | 免费一级特黄特色大片 | 亚洲综合国产 | www黄色 | 先锋影音中文字幕 | 久久人| 国产高清美女一级a毛片久久 | 91久久国产综合久久91精品网 | 激情在线网站 | 黄色影视免费观看 | 91精品国产高清91久久久久久 | 可以看黄色软件 | 成人毛片av | 欧美精品在线免费观看 | www.插 | 亚洲综合天堂 | 成人激情视频在线观看 | 毛片三区 | 先锋影音在线播放 | 一级片黄| 日日婷婷 | 精品视频免费观看 | 国产精品日韩一区二区三区 | 国产日韩视频在线 | 日韩美女乱淫免费看视频大黄 | 欧美精品小视频 | 激情婷婷六月 | 天堂一区在线 | 少妇一级淫片免费放播放 | 亚洲资源在线播放 | 2019亚洲男人天堂 | 欧美一区二区三区日韩 |