基于嵌入式WEB的AllLightSYS系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
該系統(tǒng)還可以對(duì)和WEB I/F UNIT直接相連的AllLight Control Unit(Local Port連接)的回路進(jìn)行監(jiān)視。監(jiān)視回路和檢測(cè)狀態(tài)(ON/OFF)是通過在WEBPAGE設(shè)定的,根據(jù)設(shè)定的內(nèi)容對(duì)回路監(jiān)視。如果是檢測(cè)到防盜信息,向 AllLight專用服務(wù)器發(fā)送警告信號(hào),AllLight專用服務(wù)器向用戶發(fā)送郵件。防盜監(jiān)視機(jī)能的開和關(guān)是通過手機(jī)登陸頁(yè)面中的一個(gè)功能鍵來控制的。通過“外部接點(diǎn)”,可以對(duì)WEB I/F UNIT的防盜監(jiān)視機(jī)能進(jìn)行設(shè)定。因?yàn)橹荒茉谖輧?nèi)通過開關(guān)解除防盜監(jiān)視機(jī)能,回路狀態(tài)上的“有入侵者”通過回路狀態(tài)和設(shè)定的數(shù)據(jù)(監(jiān)視回路,監(jiān)視狀態(tài))是否一致來判斷?;芈凡灰恢碌那闆r下,在一定時(shí)間內(nèi),如果沒有解除“防盜監(jiān)視機(jī)能”,判斷為“有入侵者”;如果在這段時(shí)間內(nèi),解除了“防盜監(jiān)視機(jī)能”,判斷為“無入侵者”。上述的“一定時(shí)間”,是可以設(shè)定的數(shù)據(jù)。另外,當(dāng)通過外部接點(diǎn)打開“防盜監(jiān)視機(jī)能”時(shí),為了避免屋內(nèi)操作電器的誤判為“有入侵者”,設(shè)計(jì)了延時(shí)。
另外,在AllLightSystem設(shè)計(jì)了和PC機(jī)的Interface。和計(jì)算機(jī)的Interface是通過Ethernet實(shí)現(xiàn)的。將 AllLightSystem的通信協(xié)議數(shù)據(jù)轉(zhuǎn)換成計(jì)算機(jī)使用的通信協(xié)議。只能在Local內(nèi)使用。計(jì)算機(jī)和WEB I/F UNIT是靠Socket進(jìn)行通信的。在WEB I/F UNIT中封裝Sokect的通信服務(wù),連接端口通過設(shè)定機(jī)能設(shè)定。計(jì)算機(jī)發(fā)出連接請(qǐng)求后,建立連接。連接建立后,如果Sokect存在,進(jìn)行以下處理。如果是從AllLightSystem發(fā)來數(shù)據(jù)包,收到的數(shù)據(jù)包加上TCP協(xié)議的包頭,向計(jì)算機(jī)發(fā)送。如果是從計(jì)算機(jī)發(fā)來的數(shù)據(jù)包,從收到的數(shù)據(jù)包(TCP數(shù)據(jù)包)中取出AllLight數(shù)據(jù)包,向AllLightSystem發(fā)送AllLight數(shù)據(jù)包。
通過外部接點(diǎn)(AllLight的配套機(jī)器:SX)的操作,在AllLightSystem的管理下,可以將電燈,空調(diào)等電器全關(guān)閉。
3.2 軟件實(shí)現(xiàn)
軟件構(gòu)成圖
HTTP服務(wù)處理
接收從手機(jī)、計(jì)算機(jī)發(fā)送過來的HTTP數(shù)據(jù)包,通過HTTP服務(wù)將HTTP數(shù)據(jù)解析。將接收到的HTTP請(qǐng)求解析,根據(jù)請(qǐng)求的內(nèi)容(WEBPAGE 請(qǐng)求或CGI請(qǐng)求),發(fā)送WEBPAGE的內(nèi)容或進(jìn)行CGI處理。生成客戶端請(qǐng)求的WEBPAGE,將該WEBPAGE送到客戶端。如果,設(shè)定模式的數(shù)據(jù)限制了該客戶端請(qǐng)求的WEBPAGE,將錯(cuò)誤頁(yè)面發(fā)送到客戶端。如果外部登錄FLAG是有效的,進(jìn)行HTTP協(xié)議解析;如果外部登錄FLAG是無效的,為了禁止從Internet的登陸,檢查HTTP請(qǐng)求的IP協(xié)議的發(fā)包IP和WEB I/F UNIT的IP,子網(wǎng)掩碼是否是同一個(gè)網(wǎng)段,如果是同一個(gè)網(wǎng)段,進(jìn)行HTTP協(xié)議解析,不是同網(wǎng)段,返回錯(cuò)誤頁(yè)面。根據(jù)HTTP請(qǐng)求的CGI種類可以進(jìn)行各種請(qǐng)求,例如,進(jìn)行用戶認(rèn)證處理是通過手機(jī)、計(jì)算機(jī)實(shí)行用戶認(rèn)證,和登錄在WEB I/F UNIT上的內(nèi)容進(jìn)行一致性檢查。(用戶ID,PASSWORD)如果一致則認(rèn)證失敗計(jì)數(shù)=0,將“主菜單”畫面的HTTP數(shù)據(jù)發(fā)送到客戶端。如果不一致則認(rèn)證失敗計(jì)數(shù)+1,“登錄失敗”畫面的HTTP數(shù)據(jù)發(fā)送到客戶端。如果連續(xù)登錄3次不一致,外部登錄無效。進(jìn)行防盜監(jiān)視設(shè)定處理是將防盜監(jiān)視機(jī)能 FLAG設(shè)定成有效?無效,控制SL的LED(有效:紅燈ON,無效:綠燈ON),更新“主菜單”畫面的防盜監(jiān)視狀態(tài)。處理后,將“主菜單”畫面的 HTTP送到客戶端。
這里需要說明的是,由于WEB I/F UNIT的GlobalIP地址是動(dòng)態(tài)分配的,所以必須構(gòu)建AllLight的專用服務(wù)器,并且在該服務(wù)器上將WEB I/F UNIT的GlobalIP登錄。GlobalIP的登錄需要定期執(zhí)行,在AllLight專用服務(wù)器上,是將WEB I/F UNIT的IP地址和MAC地址綁定的,因此,WEB I/F UNIT必須將自己的MAC地址通過HTTP協(xié)議傳送到AllLight專用服務(wù)器上。
評(píng)論