新聞中心

EEPW首頁 > 測試測量 > 設(shè)計(jì)應(yīng)用 > 基于嵌入式遠(yuǎn)程測控系統(tǒng)設(shè)計(jì)

基于嵌入式遠(yuǎn)程測控系統(tǒng)設(shè)計(jì)

作者: 時(shí)間:2011-09-20 來源:網(wǎng)絡(luò) 收藏

配置文件Boa.conf的編制見下。

需要說明的是,Linux下的應(yīng)用程序的配置都是以配置文件的形式提供的,~般都是放在目標(biāo)板/ete/目錄下或者/ctc/config目錄下,但Boa 的配置文件Boa.conf一般都放置在目標(biāo)板/home/httpd/目錄下。本系統(tǒng)Boa.conf文件的編寫程序?yàn)椋?BR>
  ServerName S A M S U N G—A R M
  DocumentRoot/home/httpd/cgi—bin/
  ScfiptAlias/index.html/home/httpd/html/index.html

  它指定了HTML頁面index.html必須放/home/httpd/html目錄下,CGI可執(zhí)行文件必須放到/home/httpd/cgi~bin目錄下。

  2.2 CGI程序技術(shù)原理

  CGI(Common Gateway Interface)是外部擴(kuò)展應(yīng)用程序與WWW服務(wù)器交互的一個(gè)標(biāo)準(zhǔn)接口。按照CGI標(biāo)準(zhǔn)編寫的外部擴(kuò)展應(yīng)用程序可以處理客戶端瀏覽器輸入的數(shù)據(jù),從而完成客戶端與服務(wù)器的交互操作。而CGI規(guī)范定義了Web服務(wù)器如何向擴(kuò)展應(yīng)用程序發(fā)送消息,在收到擴(kuò)展應(yīng)用程序的信息后又如何進(jìn)行處理等內(nèi)容。通過 CGI可以提供許多靜態(tài)的Html網(wǎng)頁無法實(shí)現(xiàn)的功能。其www與CGI的工作原理如下。

  HTTP協(xié)議是WWW的基礎(chǔ),它基于客戶/服務(wù)器模型。一個(gè)服務(wù)器可以為分布在網(wǎng)絡(luò)各處的客戶提供服務(wù)。它是建立在TCP/IP協(xié)議之上的“無連接”協(xié)議。每次連接只處理一個(gè)請求。當(dāng)一個(gè)請求到來時(shí),便創(chuàng)建一個(gè)子進(jìn)程為用戶的連接服務(wù)。根據(jù)請求的不同,服務(wù)器會(huì)返回HTML文件或通過CGI凋用外部應(yīng)用程序,返回處理結(jié)果。服務(wù)器通過CGI與外部程序和腳本之問進(jìn)行交互,根據(jù)客戶端在進(jìn)行請求時(shí)所采取的方法,服務(wù)器會(huì)收集客戶所提供的信息,并將該部分信息發(fā)送給指定的CGI擴(kuò)展程序。CGI擴(kuò)展程序?qū)π畔⑦M(jìn)行處理并將結(jié)果返回服務(wù)器。服務(wù)器對信息進(jìn)行分析后,將結(jié)果發(fā)送網(wǎng)客戶端。

  外部CGI程序與www服務(wù)器進(jìn)行通信、傳遞有關(guān)參數(shù)和處理結(jié)果是通過環(huán)境變量、命令行參數(shù)和標(biāo)準(zhǔn)輸入來進(jìn)行的。服務(wù)器提供了客戶端(瀏覽器)與CGI擴(kuò)展程序之問的信息交換的通道??蛻舻恼埱笸ㄟ^服務(wù)器的標(biāo)準(zhǔn)輸出傳送給CGI的標(biāo)準(zhǔn)輸入。CGI對信息進(jìn)行處理后,會(huì)將結(jié)果發(fā)回到它的標(biāo)準(zhǔn)輸入,然后由眼務(wù)器將處理結(jié)果發(fā)送給客戶端。

  2.3 CGI外部擴(kuò)展程序的編制

  服務(wù)器程序可以通過三種途徑接收信息:環(huán)境變量、命令行和標(biāo)準(zhǔn)輸入。具體使用哪一種方法要由標(biāo)簽的Method屬性來決定。在“Method=GET”時(shí),向CGI程序傳遞表單編碼信息的正常做法是通過命令來進(jìn)行的。

  大多數(shù)表單編碼信息都是通過Qucry-String的環(huán)境變量來傳遞的。如果“Method=POST”,表單信息將通過標(biāo)準(zhǔn)輸入來讀取。還有一種不使用表單就可以向CGI傳送信息的方法。那就是把信息直接追回在URL地址后面,信息和URL之間用問號(?)來分隔。本測控系統(tǒng)采用的是GET方法。下面是遠(yuǎn)程控制LED閃爍快慢的程序。其網(wǎng)頁如下頁圖3,其程序如下。

   ;LED測試      

  

<input type=“radio”name=“speed”value=“show”checked>慢速
  

<input type=“radio”name=“speed”value=“normal”>中速
  

  

<input type=“radio”name=“speed”value=“rast”>高速
  

  

  

<input type=“submit”value=確定“name=”submit>

  
  其中l(wèi)eds.cgi程序如下:
  #! /bin/sh
  Period=1+case $QUERY-STRING in
  *slow*)
  period=0.25
 ?。?;
  * normal *)
  period = 0.125
 ??;;
  * fast *
  period=0.0625+;;
  *fast * ) + period =0.0626
 ?。?;
  esac
  /bin/echo $ period ? /tmp/led-control//通過Query_String的環(huán)境變量傳遞給應(yīng)用程序。
  echo “Content-type:texe/html;charset=gb2312”
  echo
  /bin/cat led =result.template
  exit 0
  
  led—control是編譯好的可執(zhí)行的應(yīng)用程序,通過led驅(qū)動(dòng)來實(shí)現(xiàn)對LED的控制。因?yàn)镾3C2410有MMU,所以通過操作系統(tǒng)來對硬件控制需要驅(qū)動(dòng)程序來實(shí)現(xiàn)。其數(shù)據(jù)采集部分也類似,不再單獨(dú)說明。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


關(guān)鍵詞: 嵌入式 遠(yuǎn)程測控

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉