專利名稱::通過(guò)ie遠(yuǎn)程對(duì)家庭電器設(shè)備控制的方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種通過(guò)IE遠(yuǎn)程對(duì)家庭電器設(shè)備控制的方法。
背景技術(shù):
:目前,嵌入式Linux在消費(fèi)類電子以及機(jī)頂盒,遠(yuǎn)程測(cè)控系統(tǒng),數(shù)字電視接收機(jī)等方面獲得廣泛的應(yīng)用。很多產(chǎn)品提供網(wǎng)絡(luò)接入功能,可通過(guò)WiFi或者有線的方式接入。例如家庭智能網(wǎng)關(guān)就可以通過(guò)遠(yuǎn)程電腦訪問(wèn)上面的網(wǎng)頁(yè),通過(guò)網(wǎng)頁(yè)界面來(lái)對(duì)系統(tǒng)設(shè)置、控制和監(jiān)控。目前,主流的實(shí)現(xiàn)有以下兩種一種是通過(guò)將需要交互的界面用ActiveX來(lái)實(shí)現(xiàn),將ActiveX(指運(yùn)行在服務(wù)進(jìn)程中的組件)打包成CAB文件,通過(guò)嵌入在網(wǎng)頁(yè)里面來(lái)實(shí)現(xiàn)。這種方式有個(gè)缺點(diǎn)客戶端必須在微軟的平臺(tái)上使用,如果用Linux的Netscape網(wǎng)絡(luò)流瀏覽器就有問(wèn)題,更不用說(shuō)用手機(jī)了。另一種采用CGI(CommonGatewayInterface,通常網(wǎng)關(guān)接口)來(lái)實(shí)現(xiàn),CGI是一種基于瀏覽器的輸入、在網(wǎng)絡(luò)服務(wù)器(Webserver)上運(yùn)行的程序方法。但CGI實(shí)現(xiàn)的問(wèn)題是界面不容易做了美觀,因?yàn)榭紤]到性能問(wèn)題,所選擇的嵌入式Webserver不可能支持Apache這類復(fù)雜的web服務(wù)器,所以CGI不能采用ASP、PHP等實(shí)現(xiàn),只能用C語(yǔ)言實(shí)現(xiàn),而且必須是編譯好的。這樣,網(wǎng)頁(yè)就很單調(diào),無(wú)法在規(guī)定的位置顯示結(jié)果參數(shù)。例如,通過(guò)表單提交的參數(shù)被web服務(wù)器接收后提交給CGI處理,CGI將結(jié)果輸出到網(wǎng)頁(yè),但提交前的網(wǎng)頁(yè)消失,現(xiàn)在顯示的是CGI輸出的網(wǎng)頁(yè)。如何將網(wǎng)頁(yè)保持為提交前的樣式,同時(shí)CGI返回的參數(shù)只顯示在網(wǎng)頁(yè)固定的位置呢,這時(shí)可選擇采用Javascript(Java腳本)來(lái)實(shí)現(xiàn)。CGI可以將結(jié)果數(shù)據(jù)打印到網(wǎng)頁(yè)的末尾,由網(wǎng)頁(yè)上的Javascript腳本來(lái)提取末尾的參數(shù),并在規(guī)定的位置顯示。另外,系統(tǒng)需要通過(guò)web頁(yè)面來(lái)設(shè)置硬件輸入/輸出(I/O)的狀態(tài),例如通過(guò)網(wǎng)頁(yè)點(diǎn)亮一個(gè)燈,或者通過(guò)網(wǎng)頁(yè)獲取硬件當(dāng)前檢測(cè)的A/D轉(zhuǎn)換數(shù)據(jù),這時(shí)候就需要應(yīng)用程序和驅(qū)動(dòng)程序配合工作。可以將使用驅(qū)動(dòng)程序的應(yīng)用程序代碼直接放到CGI程序某一段,這樣做的缺點(diǎn)是程序的獨(dú)立性不夠,CGI程序一方面要處理接收的參數(shù),另一方面要去和驅(qū)動(dòng)程序接口,業(yè)務(wù)流程和驅(qū)動(dòng)接口部分緊密耦合,也不利于調(diào)試。
發(fā)明內(nèi)容針對(duì)目前的家庭網(wǎng)關(guān)CGI程序業(yè)務(wù)流程和系統(tǒng)參數(shù)處理緊密耦合的問(wèn)題,本發(fā)明提供一種通過(guò)IE遠(yuǎn)程對(duì)家庭電器設(shè)備控制的方法。本發(fā)明采用如下技術(shù)方案-一種通過(guò)IE遠(yuǎn)程對(duì)家庭電器設(shè)備控制的方法,包括以下步驟步驟l、客戶端通過(guò)IE登錄嵌入式網(wǎng)絡(luò)服務(wù)器;步驟2、嵌入式網(wǎng)絡(luò)服務(wù)器中的CGI腳本讀取HTML網(wǎng)頁(yè)至其緩存;步驟3、CGI腳本發(fā)送網(wǎng)頁(yè)P(yáng)1至客戶端的IE;步驟4、CGI從Linux的Shell、嵌入式數(shù)據(jù)或驅(qū)動(dòng)中讀取參數(shù);步驟5、CGI將參數(shù)進(jìn)行數(shù)據(jù)轉(zhuǎn)換后,發(fā)給客戶端的IE;步驟6、在客戶端,嵌入于網(wǎng)頁(yè)P(yáng)1內(nèi)的腳本程序讀取參數(shù)并給網(wǎng)頁(yè)上的變量賦值;步驟7、客戶端通過(guò)HTML表單的POST方法發(fā)送用戶輸入的新的參數(shù)至CGI;步驟8、CGI接收參數(shù)并調(diào)用應(yīng)用程序,應(yīng)用程序獲取的參數(shù)是由CGI腳本通過(guò)linux的系統(tǒng)函數(shù)傳輸至Linux的Shell;步驟9、應(yīng)用程序用CGI傳來(lái)的參數(shù)調(diào)用驅(qū)動(dòng)程序并最終控制硬件。進(jìn)一步地,所述步驟6中,嵌入于網(wǎng)頁(yè)P(yáng)1內(nèi)的腳本程序讀取參數(shù)后,給網(wǎng)頁(yè)上對(duì)應(yīng)位置的變量賦值,這樣網(wǎng)頁(yè)將在規(guī)定的位置顯示參數(shù),保證了網(wǎng)頁(yè)顯示的一致性。本發(fā)明將CGI和驅(qū)動(dòng)程序、使用驅(qū)動(dòng)的應(yīng)用程序分開(kāi),CGI和應(yīng)用程序之間通過(guò)Linux外殼(Shell)來(lái)傳遞參數(shù)。這能將驅(qū)動(dòng),應(yīng)用程序和CGI開(kāi)發(fā)獨(dú)立開(kāi),CGI不用直接和驅(qū)動(dòng)打交道,提高了開(kāi)發(fā)效率。圖1至圖4為本發(fā)明方法實(shí)施例中相關(guān)的網(wǎng)頁(yè)示例;圖5為本發(fā)明方法實(shí)施例示意圖。具體實(shí)施例方式CGI對(duì)表單的處理首先來(lái)說(shuō)明傳統(tǒng)的嵌入系統(tǒng)的CGI如何接收網(wǎng)頁(yè)提交的數(shù)據(jù)的。假設(shè)有個(gè)網(wǎng)頁(yè)如圖1所示。做個(gè)很簡(jiǎn)單的試驗(yàn),當(dāng)用戶輸入用戶名和密碼,CGI接收到并重新生成一個(gè)頁(yè)面,頁(yè)面顯示輸入的用戶名和密碼。這里采用的表單技術(shù),先來(lái)看以以網(wǎng)頁(yè)的代碼-〈formid=〃forml〃name="forml〃method=〃Post〃action=〃CGI_bin/usrlogin.CGI〃>〈palign二〃center〃〉用戶名<inputname=〃username〃type=〃text〃id=〃username〃/></p〉<palign=〃center〃>密碼<inputname=〃password〃type=〃password"id=〃password"/></p〉<palign=〃cente:r〃>〈inputname=〃confirm—login"type=〃submit〃id=〃confirra—login"value二〃登錄〃/></p〉</form〉其中,<form>〈/form〉之間的是表單,參數(shù)就放在中間。<formid=〃fomir'name=〃forml〃method=〃Post〃action=〃CGI-bin/usrlogin.CGI〃〉表示當(dāng)提交的時(shí)候,采用Post方法發(fā)送參數(shù),并請(qǐng)求服務(wù)器上的CGI-bin/usrlogin.CGI這個(gè)程序來(lái)處理提交的參數(shù)。Post方法發(fā)送到服務(wù)器后,需要解析出提交的名稱/值對(duì)。這里采用Boa(適合于嵌入式應(yīng)用的WebServer)作為嵌入式Webserver,在Boa中是采用char**getCGIvars()函數(shù)來(lái)提取的。CGIvars存放了提取了Post提交的數(shù)據(jù),下面的CGI程序名字是usrlogin.CGI,放在web的CGI-bin目錄下,負(fù)責(zé)向IE回送接收到的名字/值對(duì)。intmain(){char氺氺CGIvaxs;inti;CGIvars二getCGIvars();printf("Content-type:text/html\n\n";printf("<html>V);printf(〃<head><title〉CGIResults</titleX/head>\n〃);printfC〈body>\n");printf(〃〈hl〉您好.</hl>\n〃);printf(〃您的CGI輸入變量是VT);printf(〃<ul〉\n〃);for(i=0;CGIvars[i];i+=2)printf(〃<li〉[°/。s]=[%s]\n〃,CGIvars[i],CGIvars[i+l]);printf(〃</ul>\n〃);printf("〈/body〉\n");printf("《html〉VT);for(i=0;CGIvars[i];i++)free(CGIvars[i]);free(CGIvars);exit(O);這個(gè)CGI程序接收網(wǎng)頁(yè)提交的參數(shù)放在CGIvars里面,同時(shí)將生成一個(gè)新的網(wǎng)頁(yè)并把結(jié)果送回遠(yuǎn)程客戶機(jī)。由于是新生成的網(wǎng)頁(yè),如圖2所示,此界面和原來(lái)的圖l中的界面不再一樣。Javascript對(duì)CGI的改進(jìn)假設(shè)有圖3的網(wǎng)頁(yè),需要査詢嵌入式設(shè)備的IP信息,并顯示在當(dāng)前頁(yè)面,如果采取以上方法就不可行?,F(xiàn)在給出網(wǎng)頁(yè)的主要代碼-〈bodyonLoad=〃init0〃>〈tr〉<td〉<formid=〃forml"nameforml"method=〃Post〃action=7CGI-bin/IPsetting.CGI"〉<tr〉<tdwidth二〃99〃〉IP地址〈/td〉<tdwidth二〃249〃Xinputname=〃IPaddr〃type=〃text〃icK'IPaddr"value=〃">〈Ztd></tr>---------------其余參數(shù)表示這里省略-------------------------<scrIPtlanguage=〃Javascript〃>varinjs=newArray(10);functioninitOforml.IPaddr.value二injs[O];forml,IPmask.value=injs[1];forml.gateway,value二injs[2];forml.macaddr.value=injs[3];forml.dnsl.value二injs[4];forml.dns2.value二injs[5];〈/scrlPt〉<scrIPtlanguage="Javascript">injs='192.168.1.12';injs[l]='255.255.255.0';injs[2]='192.168.1.1';injs[3]='ll:22:33:44:55:66';injs[4]-'202.120.224.6';injs[5]='202.120.224.104';</scrIPt>網(wǎng)頁(yè)中有一個(gè)表單forml,其中有IP地址(IPaddr)、IP掩碼(IPmask)、網(wǎng)關(guān)(gateway)、媒體接入控制地址(macaddr)、域名解析(dnsl、dns2)這些常規(guī)IP設(shè)置。其中,〈bodyonLoad二〃init()"〉用來(lái)告訴IE在顯示網(wǎng)頁(yè)前先運(yùn)行init這個(gè)函數(shù);<scrIPtlanguage二〃Javascript〃凍示采用Javasc:ript腳本;functioninit()表示函數(shù)名是init,以上表示從接收到的injs字符串?dāng)?shù)組中取出數(shù)據(jù)。Injs是CGI程序從嵌入式服務(wù)器發(fā)送過(guò)來(lái)的。為直觀了解以上代碼的工作方式,可以把injs數(shù)據(jù)寫在Javascript下面來(lái)模擬服務(wù)器發(fā)來(lái)的網(wǎng)頁(yè),如上面代碼黑體字部分。當(dāng)網(wǎng)頁(yè)被IE瀏覽器加載并且還沒(méi)有開(kāi)始顯示時(shí),先執(zhí)行onLoac^〃init()",然后在init函數(shù)里讀取CGI發(fā)來(lái)的參數(shù)injs[],并給表單相應(yīng)的位置賦值。將以上文件,用IE在本地打開(kāi),可以看到數(shù)據(jù)。接著看嵌入式CGI如何真正返回?cái)?shù)據(jù)的。首先,CGI中讀取整個(gè)網(wǎng)頁(yè)文件發(fā)送到遠(yuǎn)程,這樣,用戶在IE直接輸入http:〃192.168.12.80/IPsetting.CGI就能讀取對(duì)應(yīng)的網(wǎng)頁(yè),接著在CGI程序的末尾,有如下代碼行-printf(〃%s〃,〃<scrIPtlanguage=Javascript>〃);printf("%s",outjs);printf(〃%s〃,〃〈/scrIPt>");outjs存放的就是字符串outjs=<scrIPtlanguageJavascript"injs='192.168.1.12';injs[1]='255.255.255.0';injs[2]='192.168.1.1';injs[3]='11:22:33:44:55:66';injs[4]=,202.120,224.6';injs[5]='202.120.224.104':</scrIPt〉通過(guò)將outjs輸出到網(wǎng)頁(yè)末尾,就把結(jié)果參數(shù)發(fā)給IE了。CGI調(diào)用Shell環(huán)境變量以上的CGI是輸出的是本地IP信息,但不是從系統(tǒng)運(yùn)行的環(huán)境獲取,是任意給定的。接著需要通過(guò)Linux的shell編程來(lái)提取嵌入式設(shè)備的IP信息。下面就需要從系統(tǒng)的環(huán)境中取出。這里,只研究最簡(jiǎn)單的例子,在程序中讀取Linux的mac地址,并在屏幕輸出。unsignedcharmac—str[]=〃ifconfigeth0|gr印HWaddr|cut-dr-f3|cut-d\\-f2>/tmp/mac—add:r\0〃;unsignedcharIP—str[]二"ifconfigeth0lgrepinet|cut-d:-f2lcut-d\\-fl〉Ztmp/IP—addr\0";unsignedcharnet一str[]二〃ifconfigethO|grepMask|cut-dk-f2|cut-d:-f2〉/tmp/net—addr\0〃;unsignedchargw一str[]二"route|grepdefault|cut_dt-f21cut-d0-f11cut-d\\-f10〉/tmp/gw—addr\0";unsignedcharmac—addr[24],IP—addr[24],net—addr[24],gw—addr[24],mac—sys[80];interror—sys=0;FILE*mac—fp,*IP—fp,fp,*net—fp;/*Creattempmac—addrfile*/strcpy(mac—sys,"\0");strcat(mac—sys,mac—str);system(mac—sys);if((mac—fp二fopen(7tmp/mac—addr",Y))!二NU山{fread(mac—addr,1,18,mac—fp);}else{perror("freaxT);return0;}fclose(mac—fp);printf("###MACaddress:%s\n〃,mac—addr);}其中unsignedcharmac—str[]二〃ifconfigethO|grepHWaddr|cut-dr-f3|cut-d\\-f2〉/tmp/mac—addrV)〃中的ifconfigethOlgr印HWaddr是從ifconfigethO輸出結(jié)果中提取Hwaddr這一行,cut-dr-f3是將字符r作為分割符,取出第三個(gè)字符串,這里就是具體的mac地址數(shù)據(jù)。system(mac—sys)是將mac—sys提交給Linux執(zhí)行系統(tǒng)調(diào)用。將mac地址存入文件/tmp/mac—addrif((mac—fp=fopen(7tmp/mac—addr〃,"O)!=NULL){fread(mac—addr,1,18,mac—fp);}是從/trap/mac—addr中取出mac地址,放在字符串mac—addr里面。修改這個(gè)程序,將其和CGIvars[]變量進(jìn)行交互,變?yōu)榭梢栽赪ebserver運(yùn)行的CGI程序。但這個(gè)程序的問(wèn)題是業(yè)務(wù)流程和具體的細(xì)節(jié)實(shí)現(xiàn)沒(méi)有分開(kāi),如果涉及驅(qū)動(dòng),則程序就比較雜亂,不利于調(diào)試和維護(hù),降低了開(kāi)發(fā)效率。將業(yè)務(wù)流程和細(xì)節(jié)實(shí)現(xiàn)分離從上面的例子可以看出,CGI業(yè)務(wù)流程和一些具體實(shí)現(xiàn)細(xì)節(jié)混在一起,例如mac地址的很多字符串操作;如果有驅(qū)動(dòng)的話,還有很多驅(qū)動(dòng)接口函數(shù)。但設(shè)備的業(yè)務(wù)流程關(guān)心的不是這些。例如需要做一個(gè)遠(yuǎn)程控制設(shè)備開(kāi)關(guān)的頁(yè)面,當(dāng)選擇某個(gè)燈后,嵌入式設(shè)備的某個(gè)i/0就動(dòng)作,通過(guò)繼電器控制燈的亮滅,如圖4。先來(lái)看看直接可以運(yùn)行的應(yīng)用程序的片段intmain(intargc,char氺氺argv){intled—no,on;unsignedcharled=0xff;/*檢查led控制的兩個(gè)參數(shù),如果沒(méi)有參數(shù)輸入則退出。*/if(argc!=3IIsscanf(argv[l],〃%d〃,&led—no)!=1||sscanf(argv[2],〃%d〃,&on)!=1I|on<0IIon>1IIled—no〈0||led—no>7){fprintf(stderr,"Usage:ledsled—no0|l\n〃);exit(l);if(on)led&=(Oxlled—no);elseled|=(0xl〈<led—no);fd=open(LED—DEV,0—RDWR);if(fd<0){printf(〃共tt!WXSB—EDR—8LEDtestdeviceopenfail##tttt%d\n〃,fd);return(-l);}write(fd,&led,1);}close(fd);return(0);上面的程序中,一些參數(shù)錯(cuò)誤處理、驅(qū)動(dòng)接口功能都在一個(gè)文件,這里還沒(méi)涉及整體的業(yè)務(wù)邏輯,如果再加入CGI本身的參數(shù)處理和業(yè)務(wù)規(guī)則,程序就顯得混亂。為解決這個(gè)問(wèn)題,可以把CGI和驅(qū)動(dòng)的應(yīng)用程序分離開(kāi),CGI通過(guò)Linux的Shell將參數(shù)傳遞給應(yīng)用程序。假設(shè)網(wǎng)頁(yè)用Javascript編寫,命名為led.html,Webserver釆用Boa,驅(qū)動(dòng)程序?qū)?yīng)的應(yīng)用程序名字是8LED—test,放在Boa.conf指定的CGI目錄供CGI程序調(diào)用,以下是CGI程序intmain(intargc,char氺氺argv){charbuffer[5000],led加[80],**cgivars,comd[80]=〃8LED_test〃;inti,j;FILE*fp;cgivars=getcgivarsO;fp=fopen("../led.html〃,〃r〃);//openthefileforsendtowebbrowserif(fp==NULL){printf("%s","filedoesnotexist");}fread(buffer,sizeof(buffer),1,fp);〃readwebpageprintf(〃%s",buffer);strcat(comd,cgivars[l]);strcat(comd,"");if(strcmp(cgivars[3],"open"))strcat(corad'"0");slssstrcat(comd,"1");system(comd);if(fp剛LL)fclose(fp);return0;}程序首先是發(fā)送led設(shè)置界面,然后分析網(wǎng)頁(yè)設(shè)置的參數(shù)(CGIvars[l],CGlvars[3]),根據(jù)參數(shù)確定某個(gè)燈的亮滅,通過(guò)system函數(shù)來(lái)實(shí)現(xiàn)。Comd就是在Shell中向應(yīng)用程序發(fā)送的命令。例如,8LED—testl0表示燈0關(guān)閉。這里,和應(yīng)用程序的接口函數(shù)就system函數(shù),所有的具體實(shí)現(xiàn)細(xì)節(jié)都在8LED一test里面實(shí)現(xiàn)了,CGI只關(guān)心自己的業(yè)務(wù)邏輯,它接收表單參數(shù),根據(jù)業(yè)務(wù)需求處理這些參數(shù)。整體的實(shí)現(xiàn)如圖5所示。具體描述如下歩驟l、客戶端(PC)通過(guò)IE登錄嵌入式網(wǎng)絡(luò)服務(wù)器(clientloginWebserverthroughIE,http:〃192.168.1.2/CGI-bin/start.CGI);步驟2、嵌入式網(wǎng)絡(luò)服務(wù)器的CGI讀取HTML網(wǎng)頁(yè)至其緩存(CGIreadhtmlwebpagetobuffer);步驟3、CGI發(fā)送網(wǎng)頁(yè)P(yáng)l至客戶端的IE(CGIsendwebpagetoIEonclientpc);步驟4、CGI從Linux的Shell、嵌入式數(shù)據(jù)或驅(qū)動(dòng)中讀取參數(shù)(CGIgetparameterfromLinuxshell,embeddeddatabaseordriver);步驟5、CGI對(duì)讀取的參數(shù)進(jìn)行數(shù)據(jù)轉(zhuǎn)換后,發(fā)給客戶端的IE(CGImakenecessaryconversiononparameterandsendtoIE)5步驟6、在客戶端,嵌入于網(wǎng)頁(yè)P(yáng)l內(nèi)的腳本程序(Javascript)讀取參數(shù)并給網(wǎng)頁(yè)上對(duì)應(yīng)位置的變量賦值,這樣網(wǎng)頁(yè)將在規(guī)定的位置顯示參數(shù),保證了網(wǎng)頁(yè)顯示的一致性;(theJavascriptembeddedinwebpagereadtheparameterwhichwilldisplayedonwebpage);步驟7、客戶端通過(guò)HTML表單(HTMLtable)的POST方法發(fā)送新的參數(shù)至CGI(customercomputersendnewparametertoCGIbyHTMLtable'sPOSTmethod);步驟8、CGI接收參數(shù)并調(diào)用應(yīng)用程序,應(yīng)用程序獲取的參數(shù)是由CGI腳本通過(guò)linux的系系統(tǒng)函數(shù)傳輸至Linux的Shell;(CGIreceivesparametersandcallstheapplication,theparameterspassedtoLinuxshellbysystemfunction);步驟9、應(yīng)用程序用CGI傳來(lái)的參數(shù)調(diào)用驅(qū)動(dòng)程序并最終控制硬件(applicationcallsdriverwiththeparameterfromCGI)。權(quán)利要求1、一種通過(guò)IE遠(yuǎn)程對(duì)家庭電器設(shè)備控制的方法,其特征在于包括以下步驟步驟1、客戶端通過(guò)IE登錄嵌入式網(wǎng)絡(luò)服務(wù)器;步驟2、嵌入式網(wǎng)絡(luò)服務(wù)器中的CGI腳本讀取HTML網(wǎng)頁(yè)至其緩存;步驟3、CGI腳本發(fā)送網(wǎng)頁(yè)P(yáng)1至客戶端的IE;步驟4、CGI從Linux的Shell、嵌入式數(shù)據(jù)或驅(qū)動(dòng)中讀取參數(shù);步驟5、CGI將參數(shù)進(jìn)行數(shù)據(jù)轉(zhuǎn)換后,發(fā)給客戶端的IE;步驟6、在客戶端,嵌入于網(wǎng)頁(yè)P(yáng)1內(nèi)的腳本程序讀取參數(shù)并給網(wǎng)頁(yè)上的變量賦值;步驟7、客戶端通過(guò)HTML表單的POST方法發(fā)送用戶輸入的新的參數(shù)至CGI;步驟8、CGI接收參數(shù)并調(diào)用應(yīng)用程序,應(yīng)用程序獲取的參數(shù)是由CGI腳本通過(guò)Linux的系統(tǒng)函數(shù)傳輸至Linux的Shell;步驟9、應(yīng)用程序用CGI傳來(lái)的參數(shù)調(diào)用驅(qū)動(dòng)程序并最終控制硬件。2、根據(jù)權(quán)利要求1所述的通過(guò)IE遠(yuǎn)程對(duì)家庭電器設(shè)備控制的方法,其特征在于所述步驟6中,嵌入于網(wǎng)頁(yè)P(yáng)1內(nèi)的腳本程序讀取參數(shù)后,給網(wǎng)頁(yè)上對(duì)應(yīng)位置的變量賦值。全文摘要一種通過(guò)IE遠(yuǎn)程對(duì)家庭電器設(shè)備控制的方法,包括客戶端通過(guò)IE登錄嵌入式網(wǎng)絡(luò)服務(wù)器;嵌入式網(wǎng)絡(luò)服務(wù)器中的CGI腳本讀取HTML網(wǎng)頁(yè)至其緩存;CGI腳本發(fā)送網(wǎng)頁(yè)P(yáng)1至客戶端的IE;CGI從Linux的Shell、嵌入式數(shù)據(jù)或驅(qū)動(dòng)中讀取參數(shù);CGI將參數(shù)進(jìn)行數(shù)據(jù)轉(zhuǎn)換后,發(fā)給客戶端的IE;客戶端嵌入于網(wǎng)頁(yè)P(yáng)1內(nèi)的腳本程序讀取參數(shù)并給網(wǎng)頁(yè)上對(duì)應(yīng)位置的變量賦值;客戶端通過(guò)HTML表單的POST方法發(fā)送用戶輸入的新的參數(shù)至CGI;CGI接收參數(shù)并調(diào)用應(yīng)用程序,應(yīng)用程序獲取的參數(shù)是由CGI腳本通過(guò)Linux的系統(tǒng)函數(shù)傳輸至Linux的Shell;應(yīng)用程序用CGI傳來(lái)的參數(shù)調(diào)用驅(qū)動(dòng)程序并最終控制硬件。本發(fā)明將CGI和驅(qū)動(dòng)程序、使用驅(qū)動(dòng)的應(yīng)用程序分開(kāi),CGI和應(yīng)用程序之間通過(guò)Linuxshell來(lái)傳遞參數(shù),提高了開(kāi)發(fā)效率。文檔編號(hào)H04L29/08GK101409731SQ200810200979公開(kāi)日2009年4月15日申請(qǐng)日期2008年10月9日優(yōu)先權(quán)日2008年10月9日發(fā)明者王真星申請(qǐng)人:上海第二工業(yè)大學(xué)