《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 一種實(shí)用的嵌入式Web服務(wù)器設(shè)計(jì)
一種實(shí)用的嵌入式Web服務(wù)器設(shè)計(jì)
單片機(jī)與嵌入式系統(tǒng)
李英明,,閆志輝,周水斌
摘要: 數(shù)字化變電站越來(lái)越多地采用以太網(wǎng)技術(shù),,針對(duì)各種保護(hù)和控制IED(InteglratedDriveElectronlcs)的參數(shù)配置以及狀態(tài)監(jiān)測(cè)問(wèn)題,,本文通過(guò)對(duì)Linux平臺(tái)上的BOA服務(wù)器和CGIC的源碼進(jìn)行研究和修改,,設(shè)計(jì)了一種實(shí)用的嵌入式Web服務(wù)器,。它可方便地在支持TCP/IP協(xié)議的非Linux的嵌入式系統(tǒng)上運(yùn)行,,在不影響IED原有功能的前提下對(duì)用戶(hù)提供Web服務(wù),,同時(shí)提出了一種適合嵌入式系統(tǒng)使用的訪問(wèn)權(quán)限認(rèn)證和對(duì)Web頁(yè)面的管理及動(dòng)態(tài)生成機(jī)制,,并支持We
Abstract:
Key words :

引言
數(shù)字化變電站是建立在網(wǎng)絡(luò)通信技術(shù)和電子技術(shù)基礎(chǔ)上的一種新型變電站自動(dòng)化系統(tǒng),,其中一個(gè)重要特征就是二次設(shè)備的網(wǎng)絡(luò)化。目前在國(guó)內(nèi)的數(shù)字化變電站試點(diǎn)中,,已經(jīng)出現(xiàn)了大批支持以太網(wǎng)和TCP/IP協(xié)議的嵌入式IED,,在具體開(kāi)發(fā)和應(yīng)用中發(fā)現(xiàn),由于現(xiàn)場(chǎng)環(huán)境的復(fù)雜多變以及客戶(hù)需求的多樣性,,經(jīng)常需要對(duì)這些IED進(jìn)行參數(shù)的配置和修改,。但廠家多采用專(zhuān)門(mén)的配置軟件來(lái)進(jìn)行,操作界面不夠統(tǒng)一,,給現(xiàn)場(chǎng)操作帶來(lái)諸多不便,。而采用Web服務(wù)器技術(shù),,則只需要瀏覽器便可實(shí)現(xiàn)對(duì)IED參數(shù)的在線修改與配置,從而極大地方便了對(duì)設(shè)備的維護(hù)和管理,。目前,,Web服務(wù)器功能在數(shù)字化變電站中,多用于調(diào)度與監(jiān)控端設(shè)計(jì),,單純?cè)贗ED上實(shí)現(xiàn)Web服務(wù)器功能的報(bào)道尚不多見(jiàn),。本文通過(guò)對(duì)Linux平臺(tái)上運(yùn)行的BoA Web服務(wù)器和CGIC的研究,將原本兩個(gè)獨(dú)立運(yùn)行的程序整合為多任務(wù)系統(tǒng)中的一個(gè)任務(wù)實(shí)體,,并對(duì)其進(jìn)行相應(yīng)的精簡(jiǎn)和修改;設(shè)計(jì)并實(shí)現(xiàn)了一種可在一般嵌入式系統(tǒng)上運(yùn)行的,,既相對(duì)簡(jiǎn)單又響應(yīng)快速的嵌入式Web服務(wù)器,。目前已在相關(guān)裝置上得到應(yīng)用,取得了較好的使用效果,。
BOA和CGIC是兩個(gè)基于Linux的開(kāi)源軟件,,代碼采用C語(yǔ)言實(shí)現(xiàn),程序小巧靈活,、執(zhí)行高效,,非常適合于嵌入式系統(tǒng)的應(yīng)用環(huán)境。但目前多用于Linux或μClinux的系統(tǒng)平臺(tái)上,。鮮見(jiàn)有用于其他系統(tǒng)的相關(guān)報(bào)道,。
其中BOA是一個(gè)單任務(wù)的HTTP服務(wù)器,它的設(shè)計(jì)目標(biāo)主要是速度和安全,。因此,,它不像傳統(tǒng)的Web服務(wù)器,為每個(gè)訪問(wèn)連接單獨(dú)開(kāi)啟一個(gè)進(jìn)程,,也不會(huì)為處理多個(gè)連接而開(kāi)啟多個(gè)自身的拷貝,。BOA對(duì)所有活動(dòng)的HTTP在內(nèi)部進(jìn)行連接處理,只為每個(gè)CGI連接啟動(dòng)新的進(jìn)程,,在同等硬件下相比其他服務(wù)器具有更快的訪問(wèn)速度,。而CGIC是一個(gè)為支持通用網(wǎng)關(guān)接口CGI(Common Gateway Interface)而開(kāi)發(fā)的C語(yǔ)言庫(kù),通常和BOA聯(lián)合使用,,它可接收由瀏覽器通過(guò)GET或POST方法傳輸過(guò)來(lái)的表單及文件數(shù)據(jù),,并提供了對(duì)這些數(shù)據(jù)進(jìn)行解析的方法,使用非常方便,,且源碼也易通過(guò)因特網(wǎng)獲得,。
基于以上原因,本文主要基于這兩種技術(shù)來(lái)實(shí)現(xiàn)IED裝置內(nèi)部的嵌入式web服務(wù)器功能,。

1 系統(tǒng)概述
嵌入式Web服務(wù)器EWS(Embedded Web Server)是指將Web服務(wù)器引入到現(xiàn)場(chǎng)測(cè)試和控制設(shè)備中,,在相應(yīng)的硬件平臺(tái)和軟件系統(tǒng)的支持下,,使傳統(tǒng)的測(cè)試和控制設(shè)備轉(zhuǎn)變?yōu)榫邆淞艘訲CP/IP為底層通信協(xié)議,Web技術(shù)為核心的基于互聯(lián)網(wǎng)的網(wǎng)絡(luò)測(cè)試和控制設(shè)備,。其中,,Web瀏覽器和EWS的交互過(guò)程如圖1所示。

a.jpg


首先由Web瀏覽器發(fā)出HTTP請(qǐng)求報(bào)文,,并建立TCP連接,,然后由EWS根據(jù)其請(qǐng)求報(bào)文來(lái)提供相應(yīng)的狀態(tài)和頁(yè)面信息,若只是請(qǐng)求靜態(tài)頁(yè)面,,則無(wú)需通過(guò)CGI,,直接返回該對(duì)應(yīng)頁(yè)面即可;反之則需要通過(guò)CGI來(lái)進(jìn)行相關(guān)報(bào)文數(shù)據(jù)的解析,,并根據(jù)解析結(jié)果來(lái)生成動(dòng)態(tài)頁(yè)面以返回給客戶(hù)端瀏覽器,。這樣,完成一次交互過(guò)程后,,即可釋放該TCP連接,。
本文的設(shè)計(jì)目標(biāo)是將Web服務(wù)器的功能僅作為DSP/BROS中的一個(gè)任務(wù),只在監(jiān)聽(tīng)到HTTP協(xié)議對(duì)應(yīng)端口(通常為80)上的TCP連接請(qǐng)求時(shí),,才運(yùn)行該任務(wù),。但是傳統(tǒng)的BOA并沒(méi)有對(duì)用戶(hù)訪問(wèn)權(quán)限的控制對(duì)頁(yè)面的管理也依賴(lài)于Linux系統(tǒng),因此,,結(jié)合變電站運(yùn)行的特殊性,,本文所設(shè)計(jì)的EWS系統(tǒng)結(jié)構(gòu)框圖如圖2所示。

b.jpg


系統(tǒng)運(yùn)行時(shí),,由HTTP連接管理模塊負(fù)責(zé)對(duì)網(wǎng)絡(luò)端口進(jìn)行監(jiān)聽(tīng),,當(dāng)監(jiān)聽(tīng)到有連接請(qǐng)求到達(dá)后,即進(jìn)入HTTP報(bào)文解析模塊進(jìn)行處理,,如果解析錯(cuò)誤,,則直接返回HTTP連接管理模塊,發(fā)出相應(yīng)的響應(yīng)報(bào)文并關(guān)閉該連接,;否則,,則根據(jù)對(duì)報(bào)文解析的結(jié)果,提取出本次要訪問(wèn)的URL,,并將其交給訪問(wèn)權(quán)限管理模塊,,以查看該客戶(hù)端是否具有足夠的權(quán)限;然后再轉(zhuǎn)由頁(yè)面文檔管理模塊進(jìn)行處理,,根據(jù)對(duì)報(bào)文的初步解析以及對(duì)訪問(wèn)權(quán)限的判斷,,由頁(yè)面文檔管理模塊來(lái)決定是否調(diào)用CGI,以實(shí)現(xiàn)文件的下載上傳及響應(yīng)文檔的生成,,從而將正確的響應(yīng)報(bào)文及頁(yè)面文檔轉(zhuǎn)交給HTTP連接管理模塊進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)的應(yīng)答回送,。

2 功能實(shí)現(xiàn)
2.1 HTTP連接管理的功能實(shí)現(xiàn)
所謂HTTP連接管理,,主要是指對(duì)連接到服務(wù)器端口的socket進(jìn)行監(jiān)聽(tīng)、捕獲,、讀寫(xiě),、關(guān)閉,以及對(duì)HTTP請(qǐng)求報(bào)文協(xié)議字段的解析和響應(yīng)報(bào)文的生成等操作,。其中,,BOA可提供完整的HTTP協(xié)議數(shù)據(jù)解析及響應(yīng)報(bào)文生成的功能。因此,,對(duì)和HTTP連接管理中相關(guān)的操作,,基本上可直接采用BOA的相關(guān)代碼,實(shí)現(xiàn)起來(lái)難度不大,。
BOA中的連接狀態(tài)切換示意圖如圖3所示,。

c.jpg


當(dāng)程序每次監(jiān)聽(tīng)到新的socket連接訪問(wèn)接入時(shí),首先對(duì)空閑隊(duì)列進(jìn)行判斷,,如果為空,則申請(qǐng)一個(gè)request結(jié)構(gòu)空間,,并將其插入就緒隊(duì)列的隊(duì)頭,,否則可直接將一個(gè)結(jié)構(gòu)空間從空閑隊(duì)列轉(zhuǎn)入;對(duì)當(dāng)前正在處理的就緒隊(duì)列成員,,當(dāng)網(wǎng)絡(luò)阻塞時(shí)則將其移入阻塞隊(duì)列的隊(duì)頭,,當(dāng)訪問(wèn)結(jié)束斷開(kāi)連接時(shí),則將該成員的空間信息移入空閑隊(duì)列,;而當(dāng)對(duì)阻塞隊(duì)列進(jìn)行輪詢(xún)時(shí),,根據(jù)其成員所對(duì)應(yīng)的socket上是有讀寫(xiě)請(qǐng)求還是該連接已超時(shí),分別將其移入就緒隊(duì)列或斷開(kāi)連接移入空閑隊(duì)列,。
以上過(guò)程在BOA中主要是通過(guò)get_request,、fdset_update和process_requests這三個(gè)函數(shù)來(lái)實(shí)現(xiàn)的,它們也是實(shí)現(xiàn)移植的重點(diǎn),,其他函數(shù)則相對(duì)簡(jiǎn)單,。在移植過(guò)程中,為了適應(yīng)嵌入式的應(yīng)用環(huán)境,,在系統(tǒng)初始化時(shí),,給空閑隊(duì)列分配了足夠大的隊(duì)列空間,并對(duì)操作時(shí)所涉及的一些動(dòng)態(tài)內(nèi)存分配的語(yǔ)句和結(jié)構(gòu)進(jìn)行修改,,從而盡量減少連接過(guò)程中頻繁的內(nèi)存申請(qǐng),。另外,傳統(tǒng)的BOA對(duì)每個(gè)CGI連接啟動(dòng)新的任務(wù),,在此考慮到配置數(shù)據(jù)的即時(shí)生效以及系統(tǒng)資源的節(jié)約,,仍然在EWS的任務(wù)環(huán)境中處理該CGI連接,。實(shí)驗(yàn)證明,這種處理方法簡(jiǎn)單可行,,而且在裝置的應(yīng)用環(huán)境中對(duì)服務(wù)器的性能并無(wú)太大影響,。
2.2 訪問(wèn)權(quán)限管理的功能實(shí)現(xiàn)
為了應(yīng)用時(shí)操作的安全性,本文將訪問(wèn)的頁(yè)面分成兩類(lèi):一類(lèi)為配置操作頁(yè)面,,儀供認(rèn)證用戶(hù)訪問(wèn),;另一類(lèi)為設(shè)備狀態(tài)頁(yè)面,可供任何用戶(hù)訪問(wèn),。其控制主要是通過(guò)對(duì)用戶(hù)IP的判別及訪問(wèn)頁(yè)面的分類(lèi)來(lái)實(shí)現(xiàn)的,。首先對(duì)用戶(hù)訪問(wèn)的URL進(jìn)行解析,如果訪問(wèn)對(duì)象為配置操作頁(yè)面,,則需要進(jìn)行認(rèn)證,,在此通過(guò)一個(gè)用戶(hù)權(quán)限控制管理結(jié)構(gòu)來(lái)對(duì)通過(guò)權(quán)限認(rèn)證的用戶(hù)進(jìn)行維護(hù),并提供一個(gè)時(shí)間摔制機(jī)制,,使通過(guò)認(rèn)證的用戶(hù)在一定時(shí)間段內(nèi)可持續(xù)有效的對(duì)服務(wù)器進(jìn)行訪問(wèn),。如果當(dāng)前客戶(hù)端(訪問(wèn)者IP)在用戶(hù)權(quán)限控制結(jié)構(gòu)內(nèi),且未超時(shí),,則通過(guò)認(rèn)證,,由服務(wù)器根據(jù)本次申請(qǐng)的URL返回相應(yīng)頁(yè)面;若超時(shí)則需要對(duì)本次訪問(wèn)的URL進(jìn)行重定向,,返回密碼校驗(yàn)頁(yè)面,,給用戶(hù)提供密碼輸入的接口。如果訪問(wèn)頁(yè)面為設(shè)備狀態(tài)頁(yè)面,,則無(wú)需進(jìn)行認(rèn)證,,直接由URL返回相應(yīng)頁(yè)面即可。訪問(wèn)權(quán)限認(rèn)證程序流程如圖4所示,。

d.jpg


通過(guò)以上過(guò)程的處理,,即可實(shí)現(xiàn)對(duì)訪問(wèn)權(quán)限的控制與管理。
2.3 頁(yè)面文檔管理及生成的功能實(shí)現(xiàn)
由于配置環(huán)境的需要,,設(shè)計(jì)頁(yè)面較多,,如果將所有頁(yè)面均存儲(chǔ)在Flash上,文件讀寫(xiě)的問(wèn)題將更為突出,。為此,,本文設(shè)計(jì)了一個(gè)如圖5所示的網(wǎng)頁(yè)頁(yè)面文件管理結(jié)構(gòu)來(lái)對(duì)頁(yè)面文件進(jìn)行管理。

e.jpg


下面介紹具體處理過(guò)程,。
首先,,對(duì)所有頁(yè)面無(wú)論是靜態(tài)還是動(dòng)態(tài)頁(yè)面,均建立一個(gè)對(duì)應(yīng)的模板文件,并將該模板文件的內(nèi)容以全局靜態(tài)字符串的形式直接寫(xiě)在程序中,。在系統(tǒng)初始化時(shí)對(duì)各模板內(nèi)容的大小進(jìn)行統(tǒng)計(jì),,并按下式對(duì)各文件的最大容量進(jìn)行粗略的估算:
mS=sizeof(pT)×1.2
其中:mS為估算的頁(yè)面內(nèi)容最大尺寸,sizeof(pT)則為該頁(yè)面對(duì)應(yīng)模板的實(shí)際大小(以上兩者均以字節(jié)為單位),。
按上式估算出頁(yè)面的最大尺寸后,,為保證對(duì)頁(yè)面分配內(nèi)存時(shí)空間的連續(xù)性,根據(jù)所有頁(yè)面的最大尺寸和,,一次性分配一個(gè)較大的內(nèi)存空間,,并將該空間按各個(gè)頁(yè)面所對(duì)應(yīng)的最大尺寸依次與該頁(yè)面對(duì)應(yīng)的管理結(jié)構(gòu)內(nèi)的文件內(nèi)容指針相關(guān)聯(lián)。這樣,,每次因配置的修改導(dǎo)致頁(yè)面內(nèi)容發(fā)生變化時(shí),,僅需對(duì)該指針?biāo)赶虻目臻g內(nèi)容進(jìn)行修改即可,而僅在保存配置數(shù)據(jù)時(shí),,通過(guò)配置文件更新函數(shù)將其存儲(chǔ)在Flash中,。這樣既避免了為修改頁(yè)面文件內(nèi)容而申請(qǐng)內(nèi)存的操作,又避免了為存儲(chǔ)頁(yè)面內(nèi)容而頻繁進(jìn)行的Flash讀寫(xiě)操作,,從而提高了該EWS的效率,。

對(duì)于EWS中動(dòng)態(tài)頁(yè)面的生成則要經(jīng)過(guò)動(dòng)態(tài)數(shù)據(jù)解析以及解析數(shù)據(jù)的模板頁(yè)面回填這兩個(gè)過(guò)程。在通常的Web交互中,,大量動(dòng)態(tài)數(shù)據(jù)是通過(guò)表單的形式體現(xiàn)在html頁(yè)面設(shè)計(jì)之中的,。而一般上送的表單數(shù)據(jù)(文件上傳除外)在GET和POST兩種方法下,除了在HTTP請(qǐng)求報(bào)文中小現(xiàn)位置的不同外(GET方法下位于請(qǐng)求行,,POST方法下位于實(shí)體主體部分),其組織形式并無(wú)差別,,如下所示:
e_1-v 1&e 2=v 2…&e N=v N
其中e_N代表表單數(shù)據(jù)中的元素名,,v_N代表該元素的取值。
因此,,當(dāng)連接管理模塊從請(qǐng)求報(bào)文中提取出表單數(shù)據(jù)后,,即可對(duì)這兩種方法下的提交數(shù)據(jù)采用相同的解析方法。CGIC采用以下方法來(lái)實(shí)現(xiàn)其解析過(guò)程,。
首先,,通過(guò)對(duì)表單數(shù)據(jù)字符串的節(jié)點(diǎn)分析,用一個(gè)單向鏈表來(lái)對(duì)表單數(shù)據(jù)中的每個(gè)元素進(jìn)行維護(hù),,在鏈表成員中包括了對(duì)元素名及其值的管理,,并針對(duì)不同的元素類(lèi)型提供了一系列接口。解析步驟如下:
①用于獲取列表框取值的函數(shù)接口cgiFormSelectSingle,。
②用于獲取文本框取值的函數(shù)接口cgiFormString,。
③用于獲取復(fù)選框取值的函數(shù)接口cgiFormCheckboxMultiple。
在需要訪問(wèn)元素時(shí),只需提供相應(yīng)的元素名,,就可方便地使用這些接口對(duì)管理鏈表遍歷來(lái)獲得相應(yīng)元素的取值,。
當(dāng)CGIC移植時(shí),只需對(duì)相應(yīng)元素解析對(duì)應(yīng)的函數(shù)進(jìn)行所選系統(tǒng)的修改即可,。需要注意的是,,對(duì)列表和復(fù)選框等非字符取值的獲取,還需按照用戶(hù)定義的取值設(shè)置,,對(duì)相應(yīng)的接口進(jìn)行一定的修改,,以適應(yīng)用戶(hù)對(duì)元素取值范圍的靈活要求。
所謂解析數(shù)據(jù)的模板頁(yè)面回填,,是指在動(dòng)態(tài)頁(yè)面設(shè)計(jì)中,,按照模板中的頁(yè)面顯示格式,將頁(yè)面中各元素的取值寫(xiě)入html模板文件中的對(duì)應(yīng)位置,。html標(biāo)簽代碼如下:
value=“***”size=“15”/>
它在頁(yè)面上表示一元素名為“devName”,,取值為“***”的文本框,在數(shù)據(jù)回填到模板頁(yè)面時(shí),,需要根據(jù)具體的取值如“devl”寫(xiě)到原“***”的對(duì)應(yīng)位置上去,。結(jié)果如下:
value=“devl”size=“15”/>
本文采用以下方法來(lái)實(shí)現(xiàn)這一處理過(guò)程。首先,,沒(méi)計(jì)頁(yè)面模板時(shí)在每個(gè)需要進(jìn)行動(dòng)態(tài)修改的頁(yè)面元素前加上不同的注釋語(yǔ)句,,對(duì)以上html標(biāo)簽,可加的注釋語(yǔ)句如下(單獨(dú)一行):

在每次解析完表單數(shù)據(jù)并且需要對(duì)動(dòng)態(tài)頁(yè)面進(jìn)行重新生成時(shí),,就可以通過(guò)對(duì)模板文件的逐行讀取,,來(lái)查找相應(yīng)的注釋語(yǔ)句,從而確定數(shù)據(jù)更新的位置,。然后再根據(jù)具體的元素取值生成新的html標(biāo)簽字符串,,用來(lái)對(duì)注釋語(yǔ)句后的標(biāo)簽字符串進(jìn)行替換。通過(guò)以上過(guò)程,,即可方便地實(shí)現(xiàn)解析數(shù)據(jù)的模板頁(yè)面回填,,從而生成相應(yīng)的動(dòng)態(tài)頁(yè)面。
2.4 文件下載和上傳的功能實(shí)現(xiàn)
文件下載和上傳是服務(wù)器經(jīng)常具有的一項(xiàng)功能,,相對(duì)來(lái)說(shuō)文件下載較為簡(jiǎn)單,,只需將下載時(shí)訪問(wèn)的URL定位于目標(biāo)文件,然后再由服務(wù)器將該文件的內(nèi)容直接上送給瀏覽器,。而文件上傳功能的實(shí)現(xiàn)則相對(duì)復(fù)雜,,下面對(duì)其設(shè)計(jì)過(guò)程進(jìn)行詳細(xì)的說(shuō)明。
首先,,要實(shí)現(xiàn)文件的上傳,,在其頁(yè)面設(shè)計(jì)時(shí)必須采用POST方法來(lái)對(duì)表單數(shù)據(jù)進(jìn)行提交,并且需要在頁(yè)面中將其編碼方式修改為“multipa rt/form-data”,否則將無(wú)法在瀏覽器端進(jìn)行文件上傳,。然后,,通過(guò)html表單中的文件元素來(lái)進(jìn)行上傳文件的選擇。
通過(guò)以上設(shè)置,,上傳給服務(wù)器的http報(bào)文數(shù)據(jù)將以multipart的編碼形式出現(xiàn),。其特點(diǎn)是,在每個(gè)表單元素項(xiàng)的前后均加有一行分界字符串,。以文件元素為例,,其格式如下:
--------------------------------7db01d60ffc
Content-Disposition:form-data;name=“file”,; filename=“1.TXT”Content-Type:text/plain
This is a txt file.
--------------------------------7db01d60ffc
其中,,“----------------------------7db01d60ffc”為分界字符串。CGlC也提供了對(duì)該格式的解析支持,。它首先提取出分界字符串,,然后再通過(guò)cgiParsePostMultltpartInput函數(shù)的操作來(lái)實(shí)現(xiàn)報(bào)文中各表單元素?cái)?shù)據(jù)以及文件數(shù)據(jù)的解析。提取出文件數(shù)據(jù)后,,即可將文件內(nèi)容按指定的路徑保存在相應(yīng)的Flash存儲(chǔ)區(qū)中,。

3 性能測(cè)試
通過(guò)以上各環(huán)節(jié),即可實(shí)現(xiàn)一個(gè)相對(duì)完整的EWS,。綜合以上各個(gè)模塊,。
在主頻600 MHz的TMS320DM642處理器上對(duì)該EWS從收到請(qǐng)求建立連接到響應(yīng)結(jié)束斷開(kāi)連接的時(shí)間進(jìn)行測(cè)試,EWS性能測(cè)試如表1所列,。

f.jpg


其中,,由于采用了框架結(jié)構(gòu)進(jìn)行設(shè)計(jì),在訪問(wèn)索引主頁(yè)時(shí),,涉及的訪問(wèn)請(qǐng)求次數(shù)較多,,所以其測(cè)試時(shí)間相比其他單次請(qǐng)求來(lái)說(shuō)要較長(zhǎng)一些??傮w來(lái)看,該EWS具有比較快速的服務(wù)響應(yīng)時(shí)間,,能夠滿(mǎn)足具體應(yīng)用環(huán)境的要求,。

結(jié)語(yǔ)
本文在BOA和CGIC的基礎(chǔ)上,通過(guò)對(duì)其代碼的修改以及HTTP協(xié)議報(bào)文的分析,,將原本運(yùn)行于Linux平臺(tái)上獨(dú)立的兩個(gè)程序進(jìn)行有機(jī)的結(jié)合,,成功地將其整合為DSP/BIOS中的一個(gè)任務(wù),并提出了一種適合一般嵌入式系統(tǒng)使用的訪問(wèn)權(quán)限及對(duì)Web頁(yè)面的管理及動(dòng)態(tài)生成機(jī)制,。同時(shí),,完成了文件的上傳與下載功能,成功實(shí)現(xiàn)了一個(gè)相對(duì)完整的EWS。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。