• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Android的遠程實驗客戶端設(shè)計

      2015-07-22 22:32:48黃廣發(fā)吳先球
      現(xiàn)代電子技術(shù) 2015年14期
      關(guān)鍵詞:客戶端

      黃廣發(fā)+吳先球

      摘 要: 為了讓實驗者在移動終端上完成遠程實驗的異地操作,設(shè)計一種基于Android平臺的遠程實驗客戶端。通過對開源播放器VLC進行二次開發(fā),使用Socket通信傳輸跨平臺控制指令,利用HTML5中的canvas標簽繪畫波形圖,實現(xiàn)客戶端進行遠程實驗的視頻監(jiān)控、遠程控制實驗儀器和數(shù)據(jù)處理等功能。以單擺法測重力加速度實驗進行效果驗證,實測結(jié)果表明,客戶端具有穩(wěn)定可靠、實驗數(shù)據(jù)處理精度高、人機交互性好等優(yōu)點。

      關(guān)鍵詞: 遠程實驗; Android; 客戶端; HTML5

      中圖分類號: TN911.2?34; TP311.52 文獻標識碼: A 文章編號: 1004?373X(2015)14?0089?03

      0 引 言

      在當今信息技術(shù)高速發(fā)展的時代,學習的自主化、智能化和終身化使得遠程教育必須要與時俱進,就是要運用信息技術(shù)改善遠程教學系統(tǒng)以滿足人們的迫切需求。遠程實驗[1]是通過互聯(lián)網(wǎng)遠程操作實驗儀器,在異地完成真實的實驗過程。遠程實驗不受時空限制,特別是隨著平板電腦、智能手機等移動終端的普及,Android系統(tǒng)占據(jù)了主流,只要連接了Internet,就可以根據(jù)實驗者的水平和需要,隨時隨地使用客戶端去選做各種實驗,這種移動學習環(huán)境下的實驗教學模式增加了教學的靈活性,具有廣泛的應(yīng)用前景。

      為了滿足移動學習的需求,本文結(jié)合遠程控制實驗的系統(tǒng)特點,設(shè)計了一種基于Android的客戶端,實現(xiàn)了遠程控制實驗的移動性操作。

      1 系統(tǒng)硬件及其工作原理

      遠程實驗系統(tǒng)的硬件結(jié)構(gòu)如圖1所示,服務(wù)器通過串口連接控制模塊,控制模塊連接實驗儀器,通過執(zhí)行服務(wù)器傳送過來的指令控制實驗儀器,并采集實驗數(shù)據(jù)。攝像機捕獲現(xiàn)場儀器的運行情況通過USB接口反饋給服務(wù)器,服務(wù)器再通過網(wǎng)絡(luò)及時反饋給遠程的操作者。

      控制模塊主要由主控單片機和相關(guān)外設(shè)組成,服務(wù)器上使用LabVIEW軟件與控制模塊進行通信,使用VLC media player進行流媒體數(shù)據(jù)的編碼和傳輸,使用Tomcat進行搭建Web應(yīng)用服務(wù)器,響應(yīng)HTML頁面的請求訪問,提供了實驗數(shù)據(jù)處理功能。

      2 客戶端設(shè)計

      客戶端是遠程實驗系統(tǒng)的一部分,實驗者直接在客戶端上進行遠程實驗的操作,具有實時觀察實驗現(xiàn)象、實時遠程控制實驗儀器、實驗數(shù)據(jù)接收與處理等功能。

      圖1 系統(tǒng)硬件結(jié)構(gòu)圖

      2.1 Android應(yīng)用程序開發(fā)環(huán)境

      開發(fā)環(huán)境[2]由JDK(Java開發(fā)工具包)、Eclipse(開發(fā)Java程序的軟件工具)、Android SDK(Android專屬的軟件開發(fā)工具包)、ADT(開發(fā)Android應(yīng)用程序的插件)、NDK(原生開發(fā)工具包)5部分組成,通過安裝和進行相應(yīng)的配置即可完成開發(fā)環(huán)境的搭建。

      2.2 功能流程

      遠程實驗的實驗儀器是實際設(shè)備,遠程用戶使用客戶端通過網(wǎng)絡(luò)對其進行操作,控制實驗設(shè)備的運行??蛻舳说恼w功能如圖2所示,其中觀察實驗現(xiàn)象部分是先要接入流媒體服務(wù)器,再把通過HTTP協(xié)議傳輸過來的H.264視頻流進行解碼[3],最后通過控件SurfaceView播放出來;控制實驗儀器部分主要是Socket通信,在主線程下申請子線程進行處理,具體采用Handler消息傳遞機制;數(shù)據(jù)處理部分是下載服務(wù)器端采集為txt格式的數(shù)據(jù)文件,讀取后在HTML5上使用canvas繪制波形圖,這種可視化的數(shù)據(jù)分析可以讓實驗者讀取數(shù)據(jù)進行公式運算。

      圖2 功能流程圖

      2.3 關(guān)鍵技術(shù)

      2.3.1 JNI接口

      將開源播放器VLC[4]應(yīng)用到Android上,需要通過將VLC的源代碼編譯成庫文件,再通過Android提供的JNI接口調(diào)用,因為VLC的代碼完全由C/C++編寫,在需要調(diào)用第三方C/C++庫文件時,使用JNI接口的應(yīng)用[5]可以讓開發(fā)者實現(xiàn)一些用Java語言難以實現(xiàn)的功能。

      在上層通過以下代碼載入已經(jīng)編譯好的libvlcjni.so庫文件:

      {

      System.loadLibrary(“vlcjni”);

      }

      LibVLC類通過聲明庫中的本地函數(shù)就可以在上層應(yīng)用程序調(diào)用。

      在主類MainActivity中,調(diào)用VLC接收服務(wù)器端發(fā)送的視頻流,經(jīng)過程序處理后進行播放,關(guān)鍵代碼如下:

      private LibVLC mLibVLC = null;

      mLibVLC = Util.getLibVlcInstance();

      if (mLibVLC ! = null)

      {

      String pathUri = "http://222.200.152.122:8080/x";

      mLibVLC.playMyMRL(pathUri);

      }

      2.3.2 多線程應(yīng)用

      采用多線程技術(shù)可以避免UI線程的阻塞,其中Handler Message[6]方法最為常用。具體操作是在新啟動的線程中發(fā)送消息,在主線程中獲取、處理消息,通過回調(diào)的方式,主線程能夠處理先啟動線程所發(fā)送的消息。

      在觀察實驗現(xiàn)象的同時,要對實驗儀器進行控制,這就需要使用多線程來實現(xiàn),主線程是視頻播放,實驗儀器控制就會開啟新的子線程來執(zhí)行,簡單的代碼實現(xiàn)如下:

      在主線程中定義handler:

      private Handler handler = new Handler()

      {

      @Override

      public void handleMessage(Message msg) {

      super.handleMessage(msg);

      switch(msg.what){

      case 1:

      ……

      break;

      } } }

      在另一線程中執(zhí)行任務(wù):

      Message message = new Message();

      message.what = 1;

      handler.sendMessage(message);

      控制實驗儀器通過Socket通信[7]實現(xiàn),包括3個步驟:建立連接、發(fā)送數(shù)據(jù)、關(guān)閉套接字。核心代碼如下:

      private Socket client = null;

      client = new Socket("222.200.152.122",8888);

      PrintWriter out = new

      PrintWriter(client.getOutputStream());

      out.println("#");

      out.flush();

      client.close();

      整個Socket通信過程需要采用try…catch機制。

      2.3.3 HTML5 標簽

      標簽是HTML5中的新標簽[8?9],只是一種圖形容器,必須使用腳本來繪制圖形,有一個基于JavaScript的繪圖API,所以在繪圖方面非常方便。其基本的使用步驟如下:

      在Android WebView控件中使用JavaScript,必須在WebView中使能JavaScript,還要解決亂碼問題,代碼如下:

      webView.getSettings().setDefaultTextEncodingName("gbk");

      webView.getSettings().setJavaScriptEnabled(true);

      3 應(yīng)用實例

      使用該客戶端進行操作遠程控制實驗,選用單擺法測重力加速度實驗[10],因為此實驗需要實時觀察實驗現(xiàn)象、遠程控制電機的開關(guān)、采集傳感器數(shù)據(jù)進行運算等內(nèi)容,最后通過實驗的完成進而算出重力加速度。通過讀圖,輸入t1=2.79 s,t2=0.83 s,然后客戶端會自動計算出重力加速度,計算原理是由周期T=t2-t1,T=2π[Lg],得到重力加速度g=[4π2LT2],客戶端的數(shù)據(jù)處理界面如圖3所示。

      4 結(jié) 語

      本文設(shè)計的客戶端,結(jié)合基于C/S模式的遠程控制實驗系統(tǒng),實現(xiàn)了在客戶端上通過互聯(lián)網(wǎng)完成遠程實驗的操作過程。實時觀察實驗現(xiàn)象、低延時控制實驗設(shè)備、準確處理實驗數(shù)據(jù)等功能增強了遠程實驗的真實感,有助于更好地掌握實驗原理。本客戶端除了應(yīng)用到以上實驗外,還可以應(yīng)用到其他物理實驗的教學當中。基于Android平臺的遠程實驗客戶端突破了傳統(tǒng)實驗的時空限制,提高了實驗設(shè)備的利用率,最大限度地共享實驗教學資源。

      圖3 數(shù)據(jù)處理界面圖

      參考文獻

      [1] 吳先球,劉朝輝,葉穗紅,等.網(wǎng)絡(luò)環(huán)境下遠程實驗的技術(shù)探討[J].實驗技術(shù)與管理,2008,25(6):30?33.

      [2] 公磊,周聰.基于Android的移動終端應(yīng)用程序開發(fā)與研究[J].計算機與現(xiàn)代化,2008(8):85?89.

      [3] 劉龍飛,章堅武.基于H.264的Web視頻監(jiān)控客戶端設(shè)計與實現(xiàn)[J].現(xiàn)代電子技術(shù),2011,34(19):27?30.

      [4] 李宗辰,朱秀昌.基于VLC的Android多路視頻監(jiān)控系統(tǒng)[J].現(xiàn)代電子技術(shù),2013,36(24):63?66.

      [5] 楊豐盛.Android應(yīng)用開發(fā)揭秘[M].北京:機械出版社,2010.

      [6] 閆偉,葉建栲.多線程技術(shù)在Android手機開發(fā)中的應(yīng)用[J].信息通信,2012(1):46?47.

      [7] 孫劍,董超,夏繼媛,等.基于Android的Socket(TCP/IP)在LED燈光控制系統(tǒng)中的應(yīng)用[J].深圳職業(yè)技術(shù)學院學報,2012(5):19?23.

      [8] 龐程,崔宣,粟潘,等.基于Android平臺HTML5的研究與實現(xiàn)[J].機械管理開發(fā),2012(6):136?137.

      [9] 佚名.HTML 標簽的具體使用方法[EB/OL]. [2013?05?07]. http://www.w3school.com.cn/tags/tag_canvas.asp.

      [10] 張冠芬.單擺智能化測量重力加速度實驗的研究[J].菏澤學院學報,2012,34(2):50?55.

      猜你喜歡
      客戶端
      縣級臺在突發(fā)事件報道中如何應(yīng)用手機客戶端
      傳媒評論(2018年4期)2018-06-27 08:20:24
      孵化垂直頻道:新聞客戶端新策略
      傳媒評論(2018年4期)2018-06-27 08:20:16
      基于Vanconnect的智能家居瘦客戶端的設(shè)計與實現(xiàn)
      電子測試(2018年10期)2018-06-26 05:53:34
      客戶端空間數(shù)據(jù)緩存策略
      罗江县| 莒南县| 荣昌县| 彩票| 嘉义县| 苍溪县| 招远市| 琼中| 奉化市| 宜君县| 木兰县| 会泽县| 阿巴嘎旗| 佛坪县| 兴宁市| 江津市| 会东县| 连城县| 宜章县| 蓬安县| 泊头市| 萨迦县| 县级市| 报价| 漳浦县| 珠海市| 乐至县| 清苑县| 宁明县| 胶南市| 都昌县| 泰来县| 泽库县| 伊金霍洛旗| 进贤县| 图木舒克市| 梁平县| 清河县| 定边县| 延庆县| 阜平县|