• 
    

    
    

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

      ?

      基于Android 手機(jī)的設(shè)備遠(yuǎn)程控制的研究與實(shí)現(xiàn)

      2018-11-14 02:54:26
      關(guān)鍵詞:包體報(bào)文頭部

      張 倩

      (沈陽工程學(xué)院自動化學(xué)院,遼寧 沈陽 110136)

      1 遠(yuǎn)程控制系統(tǒng)組成

      遠(yuǎn)程控制系統(tǒng)由智能手機(jī)、受控設(shè)備和Web服務(wù)器三大主要部分組成,其結(jié)構(gòu)框圖如圖1所示。無線路由(AP)為系統(tǒng)提供WiFi無線網(wǎng)絡(luò)。手機(jī)、平板等智能終端可以遠(yuǎn)程監(jiān)測和控制處于工廠和車間的設(shè)備。受控設(shè)備通過單片機(jī)接收WiFi無線模塊的控制指令,通過PLC或繼電器可以實(shí)現(xiàn)對設(shè)備的遠(yuǎn)程智能控制。系統(tǒng)的設(shè)計(jì)思路是將服務(wù)器應(yīng)用程序部署在Tomcat網(wǎng)絡(luò)服務(wù)器上,負(fù)責(zé)提供用戶邏輯和MySQL數(shù)據(jù)庫查詢服務(wù),并與Android智能手機(jī)和受控設(shè)備通信。用戶通過手機(jī)軟件可以完成登錄、設(shè)備添加、監(jiān)控和控制等功能。

      客戶端和服務(wù)器的通信過程由雙方的接口實(shí)現(xiàn)。首先,客戶端通過httpClient接口發(fā)送一個(gè)請求給服務(wù)器端;其次,Web服務(wù)器將來自于客戶端的請求送到Servlet接口,在接口中進(jìn)行用戶邏輯分析后,將響應(yīng)內(nèi)容從Servlet接口返回給客戶端。Tomcat服務(wù)器作為Servlet接口類的容器,負(fù)責(zé)接收和響應(yīng)手機(jī)客戶端請求。在無線網(wǎng)絡(luò)通信過程中,雙方使用的通信協(xié)議是HTTP協(xié)議,規(guī)定了傳輸數(shù)據(jù)的內(nèi)容和格式。

      圖1 遠(yuǎn)程控制系統(tǒng)結(jié)構(gòu)

      2 HTTP的工作原理與報(bào)文

      2.1 HTTP工作原理

      HTTP協(xié)議,即超文本傳輸協(xié)議,定義客戶端和服務(wù)器端之間文件傳輸?shù)臏贤ǚ绞健TTP協(xié)議的內(nèi)容是HTTP報(bào)文,報(bào)文是由一行一行字符串組成的。協(xié)議采用客戶端/服務(wù)器結(jié)構(gòu),即Client/Server模式,客戶端向服務(wù)器發(fā)送一個(gè)請求報(bào)文,服務(wù)器返回一個(gè)響應(yīng)報(bào)文。HTTP請求和響應(yīng)實(shí)現(xiàn)流程:首先,客戶端發(fā)送連接請求到Web服務(wù)器,客戶端和服務(wù)器建立起一個(gè)TCP連接,客戶端向服務(wù)器發(fā)送一個(gè)請求報(bào)文;其次,服務(wù)器接收客戶端請求并返回HTTP響應(yīng),在服務(wù)器程序中解析用戶請求,并根據(jù)用戶邏輯做出響應(yīng),由TCP連接返回給客戶端;最后,根據(jù)連接類型保持或釋放TCP連接,若連接類型為keepalive,在一段時(shí)間內(nèi)服務(wù)器可以繼續(xù)接收該客戶端的請求,若連接類型為close,則服務(wù)器在做出響應(yīng)后會釋放連接。網(wǎng)絡(luò)通信的客戶端/服務(wù)器模型如圖2所示,httpClient和httpServlet為客戶端和服務(wù)器的通信接口函數(shù)。

      圖2 網(wǎng)絡(luò)通信的客戶端/服務(wù)器模型

      2.2 HTTP的報(bào)文格式

      HTTP事務(wù)=請求命令+響應(yīng)結(jié)果。命令和響應(yīng)以報(bào)文的形式傳遞,HTTP請求報(bào)文主要由請求行、請求頭部、請求正文組成。HTTP響應(yīng)報(bào)文由狀態(tài)行、響應(yīng)頭部和響應(yīng)包體組成。

      2.2.1 請求報(bào)文結(jié)構(gòu)

      請求報(bào)文由請求行、請求頭部、空行和請求正文4部分組成,請求報(bào)文結(jié)構(gòu)如圖3所示。請求行由請求方法類型、URL地址和協(xié)議版本字段組成,需使用空格隔開。請求類型有GET和POST兩種方法。GET方法是要求服務(wù)器把URL定位的資源放在響應(yīng)報(bào)文的數(shù)據(jù)部分,一般用于客戶端向服務(wù)器請求某個(gè)資源。POST方法一般用于客戶端向服務(wù)器提交數(shù)據(jù),如智能電器向服務(wù)器發(fā)送設(shè)備狀態(tài)數(shù)據(jù)的表單,將數(shù)據(jù)提交給服務(wù)器處理,例如:POST/index.jsp HTTP/1.1,其中POST是請求方法,/index.jsp是訪問路徑,HTTP/1.1是協(xié)議版本。請求頭部由關(guān)鍵字和值對組成,用于通知服務(wù)器關(guān)于客戶端的請求信息。例如,host∶192.168.24.56,用于指定訪問服務(wù)器地址。請求頭部之后是一個(gè)空行,發(fā)送回車符和換行符,通知服務(wù)器以下內(nèi)容是請求包體。請求包體在POST方法中用于傳遞大量數(shù)據(jù),與請求包體相關(guān)的最常用的包體類型和包體長度,最后將傳送數(shù)據(jù)附在后面構(gòu)成請求報(bào)文。

      圖3 請求報(bào)文結(jié)構(gòu)

      2.2.2 響應(yīng)報(bào)文結(jié)構(gòu)

      HTTP響應(yīng)報(bào)文由響應(yīng)狀態(tài)行、響應(yīng)頭部、空行和響應(yīng)包體4部分組成。響應(yīng)狀態(tài)行由協(xié)議版本、狀態(tài)碼和狀態(tài)描述組成。響應(yīng)狀態(tài)碼由三位數(shù)字組成,200 OK表明客戶端請求成功,400 Bad Request表明客戶端請求出現(xiàn)了語法錯(cuò)誤。響應(yīng)頭部和請求頭部的格式相同,Content-Type和Content-Length是對響應(yīng)內(nèi)容的類型和長度進(jìn)行設(shè)置。響應(yīng)頭部后是一個(gè)空行,通知客戶端以下為響應(yīng)包體內(nèi)容。響應(yīng)包體中主要附加服務(wù)器返回給客戶端的數(shù)據(jù)信息。圖4為手機(jī)客戶端的請求報(bào)文和服務(wù)器的響應(yīng)報(bào)文舉例。

      圖4 請求報(bào)文和響應(yīng)報(bào)文舉例

      3 通信接口程序設(shè)計(jì)方法

      手機(jī)客戶端點(diǎn)擊Button按鈕觸發(fā)一個(gè)訪問服務(wù)器的操作,客戶端會調(diào)用訪問服務(wù)器的通信請求程序,服務(wù)器則通過Tomcat服務(wù)器中的Servlet通信接口接收客戶端請求,并按照用戶邏輯做出響應(yīng)并返回給客戶端。單片機(jī)通過WiFi無線模塊接收信號也是作為客戶端與Web服務(wù)器連接,單片機(jī)中采用C語言編程,數(shù)據(jù)的報(bào)文格式和手機(jī)一致,以Android手機(jī)客戶端為例加以說明,應(yīng)用程序采用Java語言編程實(shí)現(xiàn)。客戶端和服務(wù)器通信的流程如圖5所示。

      客戶端首先新建一個(gè)HttpClient接口、一個(gè)HttpGet對象,指向所訪問服務(wù)器IP地址,并把需要傳遞的數(shù)據(jù)附在地址后面?zhèn)鬟f,采用的語句如下:

      httpGet=new HttpGet("http∶//192.168.1.3"+"id");

      圖5 客戶端和服務(wù)器的HTTP通信接口程序流程

      GET傳遞方式適合傳遞較少數(shù)據(jù),當(dāng)需要完成大量數(shù)據(jù)傳遞需要使用POST方法。在try函數(shù)中調(diào)用通信接口中的execute方法,執(zhí)行客戶端向服務(wù)器的連接請求,準(zhǔn)備通過HttpResponse類接收服務(wù)器返回的響應(yīng)。當(dāng)接收到響應(yīng)數(shù)據(jù)后,調(diào)取狀態(tài)碼判斷連接是否成功,將返回?cái)?shù)據(jù)用getEntity()方法取出,并轉(zhuǎn)化成字符串??蛻舳嗽L問服務(wù)器通信接口任務(wù)完成。

      try{

      HttpResponse serverResponse=httpCient.execute(httpGet);

      if(serverResponse.getStatusLine().getStatus-Code()==200){

      HttpEntity serverEntity = serverResponse.getEntity();

      String response=EntityUtils.toString(serverEntity,"utf-8");

      }

      服務(wù)器接收請求的接口是HttpServlet,在其中重寫了doGet()方法,完成Servlet接口接收請求數(shù)據(jù)(HttpServletRequest)和返回服務(wù)器響應(yīng)(HttpServletResponse)的任務(wù)。在doGet()方法中,首先調(diào)用了getParamete()方法獲取request請求參數(shù),然后設(shè)置response響應(yīng)內(nèi)容類型和數(shù)據(jù)格式,在try函數(shù)中進(jìn)行用戶邏輯處理之后,把響應(yīng)數(shù)據(jù)封裝為JSON格式并裝載到JSONObject對象中,調(diào)用getWriter()方法返回服務(wù)器給客戶端的response響應(yīng),最后通過PrintWriter對象把jObject響應(yīng)發(fā)送給客戶端,關(guān)閉連接響應(yīng)任務(wù)結(jié)束。doGet()方法的程序內(nèi)容如下:

      doGet(){String nidStr=request.getParameter("id");

      response.setContentType("text/html;charset=UTF-8");

      JSONObject jObject=new JSONObject();

      try{jObject.put("data",nidStr);}catch(Exceptione){…}

      PrintWriter out=response.getWriter();

      out.println(jObject);out.flush();out.close();}

      4 系統(tǒng)開發(fā)與測試

      在Android手機(jī)端點(diǎn)擊相應(yīng)控制按鈕,通過智能手機(jī)的HttpClient通信接口將指令發(fā)送到Web服務(wù)器端,服務(wù)器通過HttpServlet通訊接口接收客戶端指令,再把命令通過無線網(wǎng)絡(luò)發(fā)送給Wifi模塊,指令由單片機(jī)負(fù)責(zé)接收并執(zhí)行電器控制動作。安卓手機(jī)和服務(wù)器的開發(fā)采用Eclipse平臺,包括界面設(shè)計(jì)、通信接口和數(shù)據(jù)庫操作等模塊;單片機(jī)采用Keil平臺開發(fā),負(fù)責(zé)收發(fā)指令和執(zhí)行繼電器控制;服務(wù)器采用Tomcat輕量級Web服務(wù)器為系統(tǒng)提供用戶應(yīng)答和數(shù)據(jù)庫訪問。經(jīng)過系統(tǒng)現(xiàn)場調(diào)試和測試,實(shí)現(xiàn)了無線網(wǎng)絡(luò)中智能手機(jī)對電器設(shè)備的遠(yuǎn)程監(jiān)控。

      5 結(jié) 論

      設(shè)計(jì)一個(gè)基于Android手機(jī)的遠(yuǎn)程控制電器的通信系統(tǒng),闡述了無線網(wǎng)絡(luò)中通信接口的原理和設(shè)計(jì)方法,測試并驗(yàn)證了該控制系統(tǒng)的正確性和有效性。手機(jī)用戶通過訪問Web服務(wù)監(jiān)測和管理電器設(shè)備,通信模式采用HTTP協(xié)議下的C/S網(wǎng)絡(luò)結(jié)構(gòu),通過客戶端的HttpClient接口和服務(wù)器的HttpServlet接口完成請求和響應(yīng)報(bào)文的傳遞。該系統(tǒng)可根據(jù)用戶需求靈活設(shè)計(jì),可移植性強(qiáng),可廣泛應(yīng)用于工廠和車間設(shè)備的遠(yuǎn)程監(jiān)控。

      猜你喜歡
      包體報(bào)文頭部
      暗色微粒包體是殼幔巖漿混合作用的證據(jù)嗎?
      基于J1939 協(xié)議多包報(bào)文的時(shí)序研究及應(yīng)用
      汽車電器(2022年9期)2022-11-07 02:16:24
      頭部按摩治療老伴失憶
      火箭的頭部為什么是圓鈍形?
      軍事文摘(2020年22期)2021-01-04 02:16:38
      一種新型多功能電弧爐澆鑄裝置
      玻璃(2020年2期)2020-12-11 22:20:04
      CTCS-2級報(bào)文數(shù)據(jù)管理需求分析和實(shí)現(xiàn)
      常見的難熔包體礦物學(xué)特征分析
      淺析反駁類報(bào)文要點(diǎn)
      中國外匯(2019年11期)2019-08-27 02:06:30
      ATS與列車通信報(bào)文分析
      自適應(yīng)統(tǒng)計(jì)迭代重建算法在頭部低劑量CT掃描中的應(yīng)用
      牡丹江市| 赤水市| 新丰县| 遵义县| 汝南县| 西乌珠穆沁旗| 师宗县| 札达县| 钦州市| 南平市| 廉江市| 彝良县| 长治市| 浮山县| 会同县| 利辛县| 昌黎县| 安乡县| 保亭| 思南县| 铜川市| 洛南县| 高陵县| 朝阳县| 永顺县| 涞水县| 罗源县| 十堰市| 芦溪县| 上栗县| 方正县| 堆龙德庆县| 齐河县| 丹江口市| 客服| 成安县| 搜索| 祁阳县| 呼玛县| 布尔津县| 德兴市|