基于嵌入式遠程測控系統(tǒng)設計
配置文件Boa.conf的編制見下。
需要說明的是,Linux下的應用程序的配置都是以配置文件的形式提供的,~般都是放在目標板/ete/目錄下或者/ctc/config目錄下,但Boa 的配置文件Boa.conf一般都放置在目標板/home/httpd/目錄下。本系統(tǒng)Boa.conf文件的編寫程序為:
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程序技術原理
CGI(Common Gateway Interface)是外部擴展應用程序與WWW服務器交互的一個標準接口。按照CGI標準編寫的外部擴展應用程序可以處理客戶端瀏覽器輸入的數據,從而完成客戶端與服務器的交互操作。而CGI規(guī)范定義了Web服務器如何向擴展應用程序發(fā)送消息,在收到擴展應用程序的信息后又如何進行處理等內容。通過 CGI可以提供許多靜態(tài)的Html網頁無法實現的功能。其www與CGI的工作原理如下。
HTTP協(xié)議是WWW的基礎,它基于客戶/服務器模型。一個服務器可以為分布在網絡各處的客戶提供服務。它是建立在TCP/IP協(xié)議之上的“無連接”協(xié)議。每次連接只處理一個請求。當一個請求到來時,便創(chuàng)建一個子進程為用戶的連接服務。根據請求的不同,服務器會返回HTML文件或通過CGI凋用外部應用程序,返回處理結果。服務器通過CGI與外部程序和腳本之問進行交互,根據客戶端在進行請求時所采取的方法,服務器會收集客戶所提供的信息,并將該部分信息發(fā)送給指定的CGI擴展程序。CGI擴展程序對信息進行處理并將結果返回服務器。服務器對信息進行分析后,將結果發(fā)送網客戶端。
外部CGI程序與www服務器進行通信、傳遞有關參數和處理結果是通過環(huán)境變量、命令行參數和標準輸入來進行的。服務器提供了客戶端(瀏覽器)與CGI擴展程序之問的信息交換的通道。客戶的請求通過服務器的標準輸出傳送給CGI的標準輸入。CGI對信息進行處理后,會將結果發(fā)回到它的標準輸入,然后由眼務器將處理結果發(fā)送給客戶端。
2.3 CGI外部擴展程序的編制
服務器程序可以通過三種途徑接收信息:環(huán)境變量、命令行和標準輸入。具體使用哪一種方法要由標簽的Method屬性來決定。在“Method=GET”時,向CGI程序傳遞表單編碼信息的正常做法是通過命令來進行的。
大多數表單編碼信息都是通過Qucry-String的環(huán)境變量來傳遞的。如果“Method=POST”,表單信息將通過標準輸入來讀取。還有一種不使用表單就可以向CGI傳送信息的方法。那就是把信息直接追回在URL地址后面,信息和URL之間用問號(?)來分隔。本測控系統(tǒng)采用的是GET方法。下面是遠程控制LED閃爍快慢的程序。其網頁如下頁圖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)境變量傳遞給應用程序。
echo “Content-type:texe/html;charset=gb2312”
echo
/bin/cat led =result.template
exit 0
led—control是編譯好的可執(zhí)行的應用程序,通過led驅動來實現對LED的控制。因為S3C2410有MMU,所以通過操作系統(tǒng)來對硬件控制需要驅動程序來實現。其數據采集部分也類似,不再單獨說明。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論