畢業(yè)設(shè)計(jì)----智能家庭網(wǎng)關(guān)的開發(fā)與應(yīng)用(含外文翻譯)_第1頁(yè)
已閱讀1頁(yè),還剩86頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  本科畢業(yè)設(shè)計(jì)(論文)</p><p> 題 目:家庭智能網(wǎng)關(guān)的開發(fā)與應(yīng)用</p><p> 學(xué) 生:</p><p> 專 業(yè):計(jì)算機(jī)科學(xué)與技術(shù)</p><p> 年 級(jí):</p><p> 指導(dǎo)教師:</p><p> 日 期:2008年11

2、月</p><p><b>  目 錄</b></p><p><b>  摘要3</b></p><p>  Abstract4</p><p><b>  第一章綜述5</b></p><p>  1.1 什么是智能家居5</p

3、><p>  1.2 設(shè)計(jì)目標(biāo)6</p><p>  第二章網(wǎng)關(guān)環(huán)境搭建7</p><p>  2.1 硬件平臺(tái)概述7</p><p>  2.1.1 S3C2410微處理器8</p><p>  2.1.2 CS8900A以太網(wǎng)控制芯片9</p><p>  2.1.3 RS-232和

4、RS-4859</p><p>  2.1.4 RJ-45以太網(wǎng)口10</p><p>  2.2 軟件平臺(tái)概述11</p><p>  2.2.1 Mizi Linux11</p><p>  2.2.2 Boa 小型Web服務(wù)器11</p><p>  2.2.3 SQLite 輕型數(shù)據(jù)庫(kù)11</

5、p><p>  2.2.4 軟件平臺(tái)構(gòu)造12</p><p>  2.3 軟件環(huán)境搭建12</p><p>  2.3.1 燒寫Mizi Linux12</p><p>  2.3.2 搭建交叉編譯環(huán)境13</p><p>  2.3.3 Boa移植13</p><p>  2.3.4 S

6、QLite移植15</p><p>  2.3.5 SQLite使用方法與常用命令17</p><p>  第三章網(wǎng)關(guān)應(yīng)用程序設(shè)計(jì)與實(shí)現(xiàn)18</p><p>  3.1 建立數(shù)據(jù)庫(kù)18</p><p>  3.2 后臺(tái)程序設(shè)計(jì)與實(shí)現(xiàn)21</p><p>  3.2.1 CGI與客戶端的通訊機(jī)制21<

7、/p><p>  3.2.2 程序中讀寫SQLite數(shù)據(jù)庫(kù)26</p><p>  3.2.3 RS485串口讀寫30</p><p>  3.2.4 指令格式定義35</p><p>  3.2.5 CGI腳本舉例37</p><p>  3.3 前臺(tái)網(wǎng)頁(yè)設(shè)計(jì)與實(shí)現(xiàn)40</p><p>

8、  3.3.1 HTML簡(jiǎn)介40</p><p>  3.3.2 CSS簡(jiǎn)介42</p><p>  3.3.3 JavaScript簡(jiǎn)介46</p><p>  3.3.4 Ajax技術(shù)50</p><p>  第四章網(wǎng)關(guān)使用說明書57</p><p>  4.1 產(chǎn)品概述57</p>&

9、lt;p>  4.2 使用說明58</p><p>  4.2.1 用戶登陸58</p><p>  4.2.2 主界面59</p><p>  4.2.3 家電控制59</p><p>  4.2.4 系統(tǒng)設(shè)置64</p><p><b>  第五章結(jié)論72</b></

10、p><p><b>  參考文獻(xiàn)73</b></p><p><b>  附錄74</b></p><p>  附錄A:外文資料翻譯—原文部分74</p><p>  附錄B:外文資料翻譯—譯文部分78</p><p>  附錄C:光盤資料說明82</p>

11、<p>  家庭智能網(wǎng)關(guān)的開發(fā)與應(yīng)用</p><p><b>  摘要</b></p><p>  家庭網(wǎng)關(guān)是家庭網(wǎng)絡(luò)的核心部件,是智能家居的主要部分,也是未來智能家居的主要發(fā)展方向。</p><p>  本項(xiàng)目開發(fā)的家庭智能網(wǎng)關(guān)作為家庭網(wǎng)絡(luò)的核心控制部件,用戶可通過Internet、手機(jī)等方式遠(yuǎn)程控制各種家用電器的運(yùn)行狀態(tài),如控制

12、電燈的開關(guān)、控制空調(diào)的溫度等,并且可以設(shè)置不同的情景狀態(tài)來實(shí)現(xiàn)對(duì)所有家電在不同情景狀態(tài)下的協(xié)同控制功能。同時(shí)網(wǎng)關(guān)還具備安防報(bào)警功能,對(duì)于突發(fā)狀況,網(wǎng)關(guān)會(huì)自動(dòng)向用戶的手機(jī)或社區(qū)的安防中心發(fā)出警報(bào)信息,并能夠?qū)崟r(shí)抓拍現(xiàn)場(chǎng)照片,以彩信的方式發(fā)送到用戶的手機(jī)上。</p><p>  該網(wǎng)關(guān)系統(tǒng)的主要硬件設(shè)備包括:網(wǎng)關(guān)控制主機(jī),信息轉(zhuǎn)發(fā)器,智能開關(guān)等。本文主要論述基于網(wǎng)關(guān)控制主機(jī)的后臺(tái)服務(wù)程序和前臺(tái)Web頁(yè)面的開發(fā)方法和應(yīng)

13、用原理。</p><p>  用戶主要通過訪問網(wǎng)關(guān)Web頁(yè)面的方式來控制網(wǎng)關(guān)發(fā)出相應(yīng)的指令以實(shí)現(xiàn)對(duì)家電等設(shè)備的控制與管理。網(wǎng)關(guān)主機(jī)的硬件基于三星S3C2410嵌入式微處理器,軟件使用Mizi公司開發(fā)的Mizi Linux嵌入式操作系統(tǒng)平臺(tái)。</p><p>  網(wǎng)關(guān)后臺(tái)方面,使用Boa作為Web服務(wù)器,SQLite作為后臺(tái)數(shù)據(jù)庫(kù),使用C\C++來編寫CGI腳本。前臺(tái)方面,使用HTML、Ja

14、vaScript、CSS來編制Web頁(yè)面,并使用Ajax技術(shù)來實(shí)現(xiàn)客戶端(瀏覽器)與服務(wù)器端(網(wǎng)關(guān)控制主機(jī))的數(shù)據(jù)通訊。</p><p>  關(guān)鍵詞:家庭網(wǎng)關(guān);智能家居;遠(yuǎn)程控制;家電控制;安防報(bào)警</p><p>  Development and Application of Home Intelligent Gateway</p><p><b> 

15、 Abstract</b></p><p>  Home gateway is a core device of home network, it’s the main part of intelligent household, it is also the major develop direction of intelligent household in the near future.<

16、;/p><p>  As the core device of home network, users can control almost all kinds of appliances remotely through the Internet, mobile phone, etc, such as switch the lamp on-off, set the temperature of the air co

17、nditioner. And users can set different situations to realize the control of all the appliances at the same time in different situations. Moreover, the gateway also has security and alarm function, when there is a burst s

18、ituation, the gateway will send the alert message to user’s mobile phone or secu</p><p>  The main hardware devices of this gateway system includes: gateway control host, information router, intelligent swit

19、ch, etc. This passage mainly discourse the development and application of back-end services programs and the front-end webs of the gateway.</p><p>  Users can visit the web pages to control the gateway send

20、the specified commands to control and manage the appliances and other devices. The hardware of gateway host based on SAMGSUNG S3C2410 embedded MPU, the software based on Mizi Linux which developed by MIZI Research.</p

21、><p>  At the back-end aspect, Boa serves as a web server and SQLite serves as a back-end database, and the CGI scripts were written in C\C++. At the front-end aspect, the web pages were written in HTML, JavaSc

22、ript and CSS, and Ajax technology was used to realize the data communication between client (Browser) and server (Gateway control host).</p><p>  Key words: Home gateway; Intelligent household; Remote contro

23、l; Appliances control; Security and alarm</p><p><b>  綜述</b></p><p>  1.1 什么是智能家居</p><p>  智能建筑已經(jīng)在世界各地蓬勃地發(fā)展起來了,并成為 21 世紀(jì)建筑業(yè)發(fā)展的主流。智能建筑是集現(xiàn)代建筑技術(shù)、現(xiàn)代通信技術(shù)、現(xiàn)代控制技術(shù)、現(xiàn)代儀器儀表技術(shù)和現(xiàn)代計(jì)算

24、機(jī)技術(shù)于一體的產(chǎn)物。近年來,隨著計(jì)算機(jī)網(wǎng)絡(luò)通信技術(shù)的高速發(fā)展和人們對(duì)住居環(huán)境要求的提高,也將“智能”的概念引進(jìn)到了住宅的建設(shè)當(dāng)中。</p><p>  “智能”如今給業(yè)者帶來諸多的遐想……</p><p>  當(dāng)家里發(fā)生緊急求助報(bào)警時(shí),能及時(shí)自動(dòng)通過自家電話通知家人,同時(shí)通過小區(qū)計(jì)算機(jī)網(wǎng)絡(luò)通知管理中心;</p><p>  當(dāng)您不在家時(shí),為您的住宅提供全面的安全護(hù)衛(wèi)

25、,如防盜、防火、防煤氣,發(fā)生警情能夠迅速通過自家電話及小區(qū)以太網(wǎng)絡(luò)通知有關(guān)人員進(jìn)行排除,為您的生活與生命提供保障;</p><p>  盜賊入室行竊,系統(tǒng)會(huì)自動(dòng)通知主人、保安或者110 報(bào)警中心,同時(shí)家中警號(hào)發(fā)出刺耳的警報(bào)聲,家中的燈光全部打開;</p><p>  不用起身就可以控制家里所有的燈并可調(diào)節(jié)亮度;外出之前只要按一個(gè)鍵就可以關(guān)上所有的燈和應(yīng)關(guān)的電器;</p>&l

26、t;p>  躺在床上就能關(guān)掉衛(wèi)生間的換氣扇;</p><p>  可以根據(jù)自己的需要調(diào)整燈光亮度并設(shè)置場(chǎng)景,輕觸一個(gè)按鍵就可以實(shí)現(xiàn)各個(gè)場(chǎng)景之間的轉(zhuǎn)換;</p><p>  每天晚上,所有的窗簾都會(huì)定時(shí)自動(dòng)關(guān)閉;</p><p>  在辦公室或在出差時(shí)打開電腦上網(wǎng),家中的安全設(shè)備和家用電器立即呈現(xiàn)在你的面前;</p><p>  在炎熱的

27、夏天,你可以在下班前在辦公室通過電腦打開空調(diào),回到家里便能享受清涼;在寒冷的冬季,則可以享受到融融的溫暖?;丶仪皢?dòng)電飯煲,一到家就可以吃上香噴噴的米飯。如果不方便使用電腦,打個(gè)電話回家一樣可以控制家電。當(dāng)你在家中,可以操起任何一部電話或免提子機(jī)來控制家中的電器;</p><p>  外出時(shí)不必?fù)?dān)心自家的窗戶是否關(guān)閉,一個(gè)電話或輕敲鍵盤就能隨心所愿。</p><p>  一個(gè)遙控器就可以解

28、決家中的電器進(jìn)行集中控制,省去了在一堆遙控器中尋找的煩惱;</p><p>  國(guó)內(nèi)國(guó)外的新聞時(shí)事、金融信息,社區(qū)的各種通知和提供的服務(wù)可以根據(jù)您的選擇定期給您發(fā)送。</p><p>  以上所述并非是遙不可及的夢(mèng)想,本項(xiàng)目開發(fā)的智能家庭網(wǎng)關(guān)正是為了把這些智能家居的夢(mèng)想變?yōu)楝F(xiàn)實(shí)!</p><p>  您在外忙碌了一天,家里的事讓智能家居幫您做吧!</p>

29、<p><b>  1.2 設(shè)計(jì)目標(biāo)</b></p><p>  如上所述,本項(xiàng)目開發(fā)的智能家庭網(wǎng)關(guān)正是為了實(shí)現(xiàn)智能家居控制的目標(biāo)。目前,本網(wǎng)關(guān)已經(jīng)實(shí)現(xiàn)下列功能:</p><p>  對(duì)家中各個(gè)房間的電器設(shè)備的控制,如:電視、空調(diào)、DVD、音箱、窗簾等。</p><p>  配合智能開關(guān),可實(shí)現(xiàn)對(duì)各個(gè)房間電燈的控制。</p&

30、gt;<p>  網(wǎng)關(guān)具備對(duì)碼學(xué)習(xí)功能,在通過對(duì)各個(gè)家電遙控器的對(duì)碼學(xué)習(xí)后即可實(shí)現(xiàn)網(wǎng)關(guān)遠(yuǎn)程控制功能。</p><p>  具有情景設(shè)置功能,網(wǎng)關(guān)共預(yù)設(shè)了6個(gè)情景。用戶可以點(diǎn)擊任一情景,即可使所有進(jìn)行過情景設(shè)置的燈光設(shè)備進(jìn)入相應(yīng)的狀態(tài)。</p><p>  用戶可根據(jù)自己的實(shí)際房型進(jìn)行相應(yīng)的房間設(shè)置,并未每個(gè)房間添加不同的電器設(shè)備。</p><p>  

31、網(wǎng)關(guān)可以設(shè)置普通用戶和超級(jí)用戶二級(jí)密碼,方便主人對(duì)網(wǎng)關(guān)核心功能的控制。</p><p>  由于智能家庭網(wǎng)關(guān)這一項(xiàng)目涉及的方面繁多,工程量相當(dāng)大,所以目前實(shí)現(xiàn)的功能還是相當(dāng)有限的,還有許多非常實(shí)用的功能需要進(jìn)一步去開發(fā)。既便如此,整個(gè)家庭網(wǎng)關(guān)的構(gòu)建框架、構(gòu)建方法已基本形成,為后續(xù)開發(fā)奠定了基礎(chǔ)。</p><p>  由于家庭網(wǎng)關(guān)開發(fā)過程中涉及的方面過多,本文主要就基于網(wǎng)關(guān)主機(jī)平臺(tái)的后臺(tái)和前

32、臺(tái)軟件開發(fā)做詳細(xì)闡述。如無特別說明,后文所涉及的“網(wǎng)關(guān)”或“家庭網(wǎng)關(guān)”均特指網(wǎng)關(guān)主機(jī)平臺(tái)。</p><p><b>  網(wǎng)關(guān)環(huán)境搭建</b></p><p>  2.1 硬件平臺(tái)概述</p><p>  網(wǎng)關(guān)硬件平臺(tái)使用基于三星S2C2410微處理器的開發(fā)板。該開發(fā)板由一塊核心板和一塊母版構(gòu)成,如下圖:</p><p>

33、  SAMSUNG S3C2410微處理器</p><p>  CS8900A以太網(wǎng)控制芯片</p><p>  Hynix HY57V561620CT-H SDRAM 16M*8Bit * 2</p><p>  SAMSUNG K9F1208U0B 64M*8Bit NAND Flash</p><p><b>  JTAG端口

34、</b></p><p><b>  RJ-45以太網(wǎng)口</b></p><p><b>  RS-232串口</b></p><p><b>  RS-485串口</b></p><p><b>  電源接口</b></p>&

35、lt;p>  2.1.1 S3C2410微處理器</p><p>  S3C2410處理器是Samsung公司基于ARM公司的ARM920T處理器核,采用0.18um制造工藝的32位微控制器。該處理器擁有:獨(dú)立的16KB指令Cache和16KB數(shù)據(jù)Cache,MMU,支持TFT的LCD控制器,NAND閃存控制器,3路UART,4路DMA,4路帶PWM的Timer ,I/O口,RTC,8路10位ADC,Tou

36、ch Screen接口,IIC-BUS 接口,IIS-BUS 接口,2個(gè)USB主機(jī),1個(gè)USB設(shè)備,SD主機(jī)和MMC接口,2路SPI。S3C2410處理器最高可運(yùn)行在203MHz。</p><p>  (1)S3C2410芯片集成了大量的功能單元,包括:</p><p>  內(nèi)部1.8V,存儲(chǔ)器3.3V,外部I/O3.3V,16KB數(shù)據(jù)Cache,16KB指令Cache,MMU。</

37、p><p>  內(nèi)置外部存儲(chǔ)器控制器(SDRAM控制和芯片選擇邏輯)。</p><p>  LCD控制器,一個(gè)LCD專業(yè)DMA。</p><p>  4個(gè)帶外部請(qǐng)求線的DMA。</p><p>  3個(gè)通用異步串行端口(IrDA1.0,16-Byte Tx FIFO and 16-Byte Rx FIFO),2通道SPI</p>&

38、lt;p>  一個(gè)多主I2C總線,一個(gè)I2S總線控制器。</p><p>  SD主接口版本1.0和多媒體卡協(xié)議版本2.11兼容。</p><p>  兩個(gè)USB HOST,一個(gè)USB DEVICE(VER1.1)。</p><p>  4個(gè)PWM定時(shí)器和一個(gè)內(nèi)部定時(shí)器。</p><p><b>  看門狗定時(shí)器。</b

39、></p><p>  117個(gè)通用I/O。</p><p><b>  56個(gè)中斷源。</b></p><p><b>  24個(gè)外部中斷。</b></p><p>  電源控制模式:標(biāo)準(zhǔn)、慢速、休眠、掉電。</p><p>  8通道10位ADC和觸摸屏接口。<

40、;/p><p>  帶日歷功能的實(shí)時(shí)時(shí)鐘。</p><p><b>  芯片內(nèi)置PLL。</b></p><p>  設(shè)計(jì)用于手持設(shè)備和通用嵌入式系統(tǒng)。</p><p>  16/32位RISC體系結(jié)構(gòu),使用ARM920T CPU核的強(qiáng)大指令集。</p><p>  帶MMU的先進(jìn)的體系結(jié)構(gòu)支持Win

41、CE、EPOC32、Linux。</p><p>  指令緩存(Cache)、數(shù)據(jù)緩存、寫緩存和物理地址TAG RAM,減小了對(duì)主存儲(chǔ)器帶寬和性能的影響。</p><p>  ARM920T CPU核支持ARM調(diào)試的體系結(jié)構(gòu)。</p><p>  內(nèi)部先進(jìn)的位控制器總線(AMBA)(AMBA2.0,AHB/APB)。</p><p><

42、b>  (2)系統(tǒng)管理</b></p><p><b>  小端/大端存儲(chǔ)支持</b></p><p>  地址空間:每個(gè)BANK128MB(全部為1GB)。</p><p>  每個(gè)BANK可編程為8/16/32位數(shù)據(jù)總線。</p><p>  BANK0到BANK6為固定起始地址。</p>

43、;<p>  BANK7可編程BANK起始地址和大小。</p><p>  一共8個(gè)存儲(chǔ)器BANK。</p><p>  前6個(gè)存儲(chǔ)器BANK用于ROM、SRAM和其它。</p><p>  兩個(gè)存儲(chǔ)器BANK用于ROM、SRAM、和SDRAM(同步隨機(jī)存儲(chǔ)器)。</p><p>  支持等待信號(hào)用以擴(kuò)展總線周期。</p&

44、gt;<p>  支持SDRAM掉電模式下的自刷新。</p><p>  支持不同類型的ROM用于啟動(dòng)(NOR/NAND Flash、EEPROM和其它)。</p><p><b>  (3)芯片封裝</b></p><p>  272-FBGA封裝</p><p>  2.1.2 CS8900A以太網(wǎng)控制

45、芯片</p><p>  CS8900芯片是Cirrus Logic公司生產(chǎn)的一種局域網(wǎng)處理芯片,在嵌入式領(lǐng)域中使用非常常見。它的封裝是100-pin TQFP,內(nèi)部集成了片內(nèi)RAM、10BASE-T收發(fā)濾波器,并且提供8位和16位兩種接口。</p><p>  2.1.3 RS-232和RS-485</p><p>  RS-232和RS-485均屬于串口范疇。人

46、們熟悉的RS-232串口標(biāo)準(zhǔn)出現(xiàn)較早,難免有不足之處:</p><p>  接口的信號(hào)電平值較高,易損壞接口電路的芯片,又因?yàn)榕cTTL 電平不兼容故需使用電平轉(zhuǎn)換電路方能與TTL電路連接。</p><p>  傳輸速率較低,在異步傳輸時(shí),波特率為20Kbps。</p><p>  接口使用一根信號(hào)線和一根信號(hào)返回線而構(gòu)成共地的傳輸形式, 這種共地傳輸容易產(chǎn)生共模干擾

47、,所以抗噪聲干擾性弱。</p><p>  傳輸距離有限,最大傳輸距離為50英尺,實(shí)際有效距離僅為50米左右。</p><p>  由于RS-232存在上述這些不足,于是就不斷出現(xiàn)了一些新的串口接口標(biāo)準(zhǔn),RS-485就是其中之一,它具有以下特點(diǎn):</p><p>  RS-485的電氣特性:邏輯“1”以兩線間的電壓差為+(0.2—6) V表示;邏輯“0”以兩線間的電

48、壓差為-(0.2—6)V表示。接口信號(hào)電平比RS-232-C降低了,就不易損壞接口電路的芯片, 且該電平與TTL電平兼容,可方便與TTL 電路連接。</p><p>  RS-485的數(shù)據(jù)最高傳輸速率為10Mbps。</p><p>  RS-485接口是采用平衡驅(qū)動(dòng)器和差分接收器的組合,抗共模干能力增強(qiáng),即抗噪聲干擾性好。</p><p>  RS-485最大的通

49、信距離約為1219M,最大傳輸速率為10Mb/S,傳輸速率與傳輸距離成反比,在100Kb/S的傳輸速率下,才可以達(dá)到最大的通信距離,如果需傳輸更長(zhǎng)的距離,需要加485中繼器。RS-485總線一般最大支持32個(gè)節(jié)點(diǎn),如果使用特制的485芯片,可以達(dá)到128個(gè)或者256個(gè)節(jié)點(diǎn),最大的可以支持到400個(gè)節(jié)點(diǎn)。</p><p>  在本網(wǎng)關(guān)的開發(fā)、應(yīng)用中,RS-232接口主要用于連接PC,以便通過超級(jí)終端等軟件來連接網(wǎng)關(guān)

50、主機(jī)進(jìn)行開發(fā)、調(diào)試等工作。而RS-485接口則用于連接轉(zhuǎn)發(fā)器,網(wǎng)關(guān)發(fā)送的任何指令都通過此端口發(fā)往轉(zhuǎn)發(fā)器,并由轉(zhuǎn)發(fā)器完成指令的發(fā)送工作。</p><p>  2.1.4 RJ-45以太網(wǎng)口</p><p>  本網(wǎng)關(guān)的以太網(wǎng)口主要用于通過以太網(wǎng)絡(luò)訪問網(wǎng)關(guān)的Web頁(yè)面,同時(shí)亦可用于通過超級(jí)終端等軟件以TCP/IP的連接方式來連接開發(fā)板,這樣能進(jìn)行更穩(wěn)定、更快速的文件傳輸和調(diào)試工作。</p

51、><p>  2.2 軟件平臺(tái)概述</p><p>  網(wǎng)關(guān)基于Mizi Linux嵌入式操作系統(tǒng)平臺(tái)。使用Boa作為Web服務(wù)器,使用SQLite輕型數(shù)據(jù)庫(kù)作為后臺(tái)管理數(shù)據(jù)庫(kù)。后臺(tái)CGI腳本使用C\C++編寫,前臺(tái)Web頁(yè)面則使用HTML、JavaScript和CSS編寫,利用Ajax技術(shù)實(shí)現(xiàn)前臺(tái)與后臺(tái)之間的數(shù)據(jù)通訊。</p><p>  2.2.1 Mizi Lin

52、ux</p><p>  Mizi公司開發(fā)的Mizi Linux使用Linux 2.4內(nèi)核,支持S3C2410微處理器,并提供了完整的適用于S3C2410的MIZI Linux SDK,極大方便了開發(fā)人員基于2410和Mizi Linux平臺(tái)的嵌入式應(yīng)用程序開發(fā)。</p><p>  2.2.2 Boa 小型Web服務(wù)器</p><p>  Boa是一個(gè)單任務(wù)的ht

53、tp web服務(wù)器,支持認(rèn)證、CGI腳本等,功能比較全、性能比較高。它和傳統(tǒng)web服務(wù)器的主要區(qū)別是:它是單進(jìn)程的,在接到新的http請(qǐng)求時(shí)并不 FORK出一個(gè)新的進(jìn)程來響應(yīng),不能同時(shí)處理多個(gè)到來的連接,而且也不能將自己拷貝多個(gè)副本來處理多連接。它在內(nèi)部處理所有正在進(jìn)行的http連接請(qǐng)求,只對(duì)單獨(dú)的CGI程序、自動(dòng)文件的產(chǎn)生、自動(dòng)文件的解壓等請(qǐng)求FORK出新進(jìn)程。它的優(yōu)點(diǎn)是代碼簡(jiǎn)單、速度快、適合于嵌入式應(yīng)用。</p>&l

54、t;p>  值得一提的是,Boa是一款完全開放源碼的免費(fèi)軟件,用戶可以隨時(shí)從官方網(wǎng)站上獲取Boa的最新版本并編譯運(yùn)行于不同的操作系統(tǒng)平臺(tái)。</p><p>  2.2.3 SQLite 輕型數(shù)據(jù)庫(kù)</p><p>  SQLite是個(gè)輕型的嵌入式數(shù)據(jù)庫(kù),同樣它也是一款源代碼級(jí)的免費(fèi)軟件。SQLite不同于其他大部分的SQL數(shù)據(jù)庫(kù)引擎,因?yàn)樗氖滓O(shè)計(jì)目標(biāo)就是簡(jiǎn)單化:易于管理、易于使用

55、、易于嵌入其他大型程序、易于維護(hù)和配置。</p><p>  小巧、快速、穩(wěn)定是SQLite的優(yōu)勢(shì)。出色的穩(wěn)定性源于SQLite力爭(zhēng)做到簡(jiǎn)單化,越簡(jiǎn)單就越不容易出錯(cuò)。也正是因?yàn)镾QLite的這些優(yōu)勢(shì),SQLite非常適合運(yùn)行于資源有限的嵌入式平臺(tái)上。此外,因?yàn)镾QLite數(shù)據(jù)庫(kù)幾乎不需要管理,因此對(duì)于那些無人值守運(yùn)行或無人工技術(shù)支持的設(shè)備或服務(wù),SQLite是一個(gè)很好的選擇。SQLite能很好的適用于手機(jī)、PDA

56、、機(jī)頂盒等嵌入式設(shè)備,作為一個(gè)嵌入式數(shù)據(jù)庫(kù)它也能夠很好的應(yīng)用于客戶端程序。</p><p>  2.2.4 軟件平臺(tái)構(gòu)造</p><p>  如圖2-2所示,基于S3C2410和MIZI Linux平臺(tái)之上,Boa作為Web服務(wù)器擔(dān)負(fù)著與客戶端通訊的重要工作。當(dāng)接收到客戶端瀏覽器發(fā)送的HTTP請(qǐng)求后,Boa發(fā)送相應(yīng)的HTML、JavaScript和CSS文件到客戶端瀏覽器。用戶在瀏覽器網(wǎng)頁(yè)

57、上進(jìn)行相應(yīng)互動(dòng)操作后,JavaScript使用Ajax技術(shù)與Boa進(jìn)行通訊,Boa會(huì)調(diào)用相應(yīng)的CGI腳本響應(yīng)用戶的請(qǐng)求,并發(fā)回響應(yīng)的結(jié)果。同時(shí)CGI腳本可以直接訪問、操作SQLite后臺(tái)數(shù)據(jù)庫(kù)或者網(wǎng)關(guān)IO端口來獲取相關(guān)數(shù)據(jù)或發(fā)送相應(yīng)的控制指令。</p><p>  2.3 軟件環(huán)境搭建</p><p>  2.3.1 燒寫Mizi Linux</p><p>  由

58、于Linux移植已超出本文討論范圍,故在此只給出S3C2410開發(fā)板上移植Linux系統(tǒng)的大致步驟,大致步驟如下:</p><p>  通過JTAG接口燒寫VIVI啟動(dòng)代碼。</p><p>  在開發(fā)板上運(yùn)行l(wèi)oad flash kernel x命令,并通過串口xmodem方式傳送Linux內(nèi)核文件(zImage),完成Linux內(nèi)核燒寫。</p><p>  在

59、開發(fā)板上運(yùn)行l(wèi)oad flash root x命令,并通過串口xmodem方式傳送Linux根文件系統(tǒng)文件(root.cramfs),完成根文件系統(tǒng)燒寫。</p><p>  2.3.2 搭建交叉編譯環(huán)境</p><p>  要進(jìn)行嵌入式設(shè)備應(yīng)用程序開發(fā),在x86 Linux上安裝交叉編譯環(huán)境是首要條件。</p><p>  如前文所述,MIZI公司提供了完整的適用

60、于S3C2410的Mizi Linux SDK。在用于開發(fā)的x86 Linux系統(tǒng)上解壓縮SDK壓縮包后,依次安裝所有的RPM包就可以完成交叉編譯環(huán)境的安裝。安裝完成后,所有的交叉編譯工具都會(huì)存在于x86 Linux的/opt/host/armv4l/bin/目錄之下,如armv4l-unknown-linux-gcc、armv4l-unknown-linux-g++和armv4l-unknown-linux-strip等。</p

61、><p>  為了使系統(tǒng)每次啟動(dòng)后用戶都能直接調(diào)用這些交叉編譯工具,需要把/opt/host/armv4l/bin/添加到系統(tǒng)路徑PATH內(nèi),具體操作步驟如下:(以Ubuntu Linux 8.04為例)</p><p>  在終端控制臺(tái)中輸入命令:sudo vi /etc/bash.bashrc</p><p>  在后面加入如下代碼:</p><

62、p>  if [ -d /usr/local/arm ] ; then</p><p>  PATH=/usr/local/arm/bin:"${PATH}"</p><p><b>  fi</b></p><p>  在終端控制臺(tái)中輸入命令:# source /etc/profile,使新的環(huán)境變量生效</p

63、><p>  至此就完成了交叉編譯環(huán)境的安裝,讀者可以自行編寫一個(gè)簡(jiǎn)單的Hello World程序,并嘗試使用交叉編譯器進(jìn)行編譯,并將生成的二進(jìn)制文件上傳至開發(fā)板進(jìn)行測(cè)試。</p><p>  2.3.3 Boa移植</p><p>  Boa是一款源代碼開放的免費(fèi)Web服務(wù)器,其移植步驟如下:(假設(shè)已按照2.3.2節(jié)的方法成功搭建了交叉編譯環(huán)境?。?lt;/p>

64、<p>  從Boa的官方網(wǎng)站(http://www.boa.org)上獲取最新版的軟件源代碼,目前最新版為0.94.13。</p><p>  解壓下載的源代碼壓縮包。</p><p>  進(jìn)入解壓目錄的src/目錄下,輸入./configure命令,生成Makefile文件。</p><p>  修改src/compat.h文件,將</p&g

65、t;<p>  #define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff</p><p>  修改為 #define TIMEZONE_OFFSET(foo) (foo)->tm_gmtoff</p><p>  運(yùn)行make命令,即可生成運(yùn)行于x86 Linux平臺(tái)的Boa二進(jìn)制文件。</p><p&

66、gt;  修改boa.c文件,將</p><p>  if (setuid(0) != -1) {</p><p>  DIE("icky Linux kernel bug!");</p><p><b>  } </b></p><p>  這三行語(yǔ)句全部注釋掉。</p><p&

67、gt;  修改Makefile文件,將 CC = gcc</p><p>  CPP = gcc -E</p><p>  改為 CC = armv4l-unknown-linux-gcc </p><p>  CPP = armv4l-unknown-linux-gcc –E</p><p>  運(yùn)行make clean,再運(yùn)行make命令

68、,即可生成運(yùn)行于ARM Linux平臺(tái)的Boa二進(jìn)制文件。</p><p>  至此,能夠運(yùn)行于S3C2410/Mizi Linux平臺(tái)的Boa已經(jīng)成功生成,可以將該boa二進(jìn)制文件上傳至開發(fā)板。但是此時(shí)還無法啟動(dòng)Boa,因?yàn)檫€未對(duì)Boa進(jìn)行配置,需要對(duì)boa.conf文件進(jìn)行相應(yīng)的配置,方法如下:</p><p>  回到x86 Linux上的Boa解壓目錄下,打開boa.conf文件,

69、修改如下配置:</p><p>  Port——設(shè)置提供Web服務(wù)的端口號(hào)。這里使用默認(rèn)端口號(hào)80。</p><p>  User——設(shè)置以什么用戶身份訪問Web。因?yàn)樾枰L問并運(yùn)行CGI腳本,為了防止權(quán)限不足的問題,這里使用root作為Web訪問身份。</p><p>  Group——設(shè)置訪問用戶所屬用戶組。因?yàn)榍度胧皆O(shè)備上無nogroup組,故這里設(shè)置成0。&

70、lt;/p><p>  ErrorLog——錯(cuò)誤日志存放路徑。因?yàn)樵陂_發(fā)板上Boa放在/mnt/下,故這里設(shè)置成/mnt/error_log。</p><p>  AccessLog——訪問日志存放路徑。同上,設(shè)置成/mnt/access_log。</p><p>  DocumentRoot——Web根文件夾,即存放網(wǎng)站首頁(yè)HTML文件的文件夾。這里設(shè)置成/mnt。&

71、lt;/p><p>  DirectoryIndex——默認(rèn)首頁(yè)HTML文件文件名。這里設(shè)置成index.html。</p><p>  DirectoryMaker——?jiǎng)?chuàng)建文件夾列表的文件夾路徑。這里設(shè)置成/mnt。</p><p>  MimeTypes——設(shè)置mime.types文件路徑。這里設(shè)置為/mnt/mime.types。</p><p

72、>  CGIPath——設(shè)置CGI腳本的存放路徑。這里設(shè)置為/mnt/cgi-bin。</p><p>  ScriptAlias——設(shè)置CGI腳本文件夾別名。這里設(shè)置為ScriptAlias /cgi-bin/ /mnt/cgi-bin/。</p><p>  將修改好的boa.conf和mime.types(一般位于/etc/下)文件傳到開發(fā)板boa所處的同文件夾(即/mnt/

73、)下。</p><p>  逐一建立在boa.conf文件中設(shè)置的各個(gè)文件夾(包括所有涉及的子文件夾)。</p><p>  運(yùn)行./boa –c .命令,正常情況下即可啟動(dòng)boa??梢允褂胮s –A命令確認(rèn)boa進(jìn)程是否已啟動(dòng)。</p><p>  用戶可以建立一個(gè)簡(jiǎn)單的index.html文件并傳輸?shù)介_發(fā)板/mnt/文件夾下,然后在客戶端上使用瀏覽器(輸入地址:

74、http://網(wǎng)關(guān)IP地址:端口號(hào)(默認(rèn)80端口可不輸))測(cè)試boa是否能正常工作。</p><p>  2.3.4 SQLite移植</p><p>  SQLite是一款源代碼開放的免費(fèi)輕量級(jí)數(shù)據(jù)庫(kù)軟件,其移植步驟如下:(假設(shè)已按照2.3.2節(jié)的方法成功搭建了交叉編譯環(huán)境?。?lt;/p><p>  從SQLite的官方網(wǎng)站(http://www.sqlite.or

75、g)上獲取最新版的軟件源代碼,目前最新版為3.6.5,本文使用的版本為3.5.9,兩者編譯方法相同。</p><p>  解壓下載的源代碼壓縮包,假設(shè)解壓在文件系統(tǒng)根目錄下(/)。</p><p>  在文件系統(tǒng)根目錄下建立一個(gè)文件夾以存放生成的文件:mkdir /sqlite-arm。</p><p>  進(jìn)入解壓目錄,運(yùn)行命令./configure --host

76、=armv4l-unknown-linux --prefix=/sqlite-arm --disable-tcl,即可在解壓目錄下生成適用于ARM Linux平臺(tái)的Makefile文件。</p><p>  運(yùn)行make命令,系統(tǒng)就會(huì)利用交叉編譯器來編譯SQLite。</p><p>  運(yùn)行make install命令。</p><p>  如果以上步驟都順利完成

77、的話,在/sqlite-arm文件夾下會(huì)生成三個(gè)文件夾:</p><p>  bin/包含運(yùn)行于ARM Linux平臺(tái)的sqlite3二進(jìn)制文件。</p><p>  include/包含sqlite3.h和sqlite3ext.h兩個(gè)頭文件。</p><p>  lib/包含SQLite3適用于ARM Linux平臺(tái)的幾個(gè)鏈接庫(kù)文件,如動(dòng)態(tài)鏈接庫(kù)文件libs

78、qlite3.so.0.8.6和靜態(tài)鏈接庫(kù)文件libsqlite3.a等。</p><p>  值得指出的是,在交叉編譯有關(guān)SQLite的應(yīng)用程序時(shí),如果采用普通的動(dòng)態(tài)鏈接方式編譯,則除了編譯好的二進(jìn)制文件外,位于該lib/目錄下的幾個(gè)庫(kù)文件也需要上傳至開發(fā)板,該程序才能正常運(yùn)行,否則會(huì)因?yàn)檎也坏较鄳?yīng)的SQLite鏈接庫(kù)文件而無法運(yùn)行。所以為了避免麻煩,在編譯ARM版本的SQLite應(yīng)用程序時(shí)一般采用靜態(tài)鏈接的方

79、式進(jìn)行編譯,這樣生成的二進(jìn)制文件雖然比較大,但卻不需要提供額外的SQLite鏈接庫(kù)文件。</p><p>  此外因?yàn)榫幾g生成的sqlite二進(jìn)制文件和庫(kù)文件libsqlite3.so.0.8.6中包含有調(diào)試信息,所以文件體積比較大,可以使用strip工具剝離調(diào)試信息,方法如下:</p><p>  進(jìn)入/sqlite-arm,運(yùn)行armv4l-unknown-linux-strip bi

80、n/sqlite3命令和armv4l-unknown-linux-strip lib/libsqlite3.so.0.8.6命令來剝離調(diào)試信息,生成體積較小的二進(jìn)制文件。</p><p>  至此,就完成了ARM Linux平臺(tái)的SQLite的編譯。在實(shí)際的嵌入式開發(fā)過程中,一般不直接在開發(fā)板上使用sqlite3程序來操作和管理數(shù)據(jù)庫(kù),為了方便操作,一般都在x86 Linux上建立數(shù)據(jù)庫(kù)并添加相應(yīng)的數(shù)據(jù)表和數(shù)據(jù),

81、并將生成的數(shù)據(jù)庫(kù)文件上傳至開發(fā)板。所以有必要再編譯一個(gè)能夠運(yùn)行于x86 Linux平臺(tái)的SQLite程序,以方便在x86 Linux上操作數(shù)據(jù)庫(kù)文件。</p><p>  要編譯能夠運(yùn)行于x86 Linux平臺(tái)的SQLite方法更為簡(jiǎn)單,依次按照上述的ARM版本編譯方法執(zhí)行到第6步即可,其中需要注意:跳過第3步;在第4步中只需運(yùn)行./configure命令,無需其它開關(guān)參數(shù)。這樣就完成了x86版SQLite的編譯

82、,而且在執(zhí)行make install命令后,x86版的sqlite3二進(jìn)制文件被存放在/usr/local/bin/目錄下,而x86版的鏈接庫(kù)文件則存放在/usr/local/lib/目錄下,由于這兩個(gè)路徑都默認(rèn)存在于PATH環(huán)境變量中,所以用戶可以直接調(diào)用sqlite3命令或相應(yīng)的sqlite鏈接庫(kù)文件,相當(dāng)方便。</p><p>  2.3.5 SQLite使用方法與常用命令</p><p

83、>  完成了x86 Linux版SQLite的編譯后,有必要簡(jiǎn)單介紹一下SQLite的使用方法和常用命令,以方便日常數(shù)據(jù)庫(kù)創(chuàng)建、修改、調(diào)試和維護(hù)。</p><p>  可以使用sqlite3 test.db命令進(jìn)入sqlite3的命令行操作界面。如果不存在test.db文件則創(chuàng)建之,反之則打開之。成功進(jìn)入sqlite3命令行界面后會(huì)顯示如下信息:</p><p>  SQLite v

84、ersion 3.5.9</p><p>  Enter ".help" for instructions</p><p><b>  sqlite></b></p><p>  在sqlite>提示符后就可輸入常規(guī)的SQL語(yǔ)句,并以分號(hào)(;)結(jié)尾,回車即可執(zhí)行相應(yīng)的SQL語(yǔ)句。如sqlite> selec

85、t * from test;查詢test表中所有數(shù)據(jù)記錄。</p><p>  除了常規(guī)SQL語(yǔ)句外,SQLite還內(nèi)置了一些指令方便對(duì)數(shù)據(jù)庫(kù)的管理,如下:</p><p>  .databases 列出數(shù)據(jù)庫(kù)文件名</p><p>  .tables ?PATTERN? 列出?PATTERN?匹配的表名</p><p>  .i

86、mport FILE TABLE 將文件中的數(shù)據(jù)導(dǎo)入的文件中</p><p>  .dump ?TABLE? 生成形成數(shù)據(jù)庫(kù)表的SQL腳本</p><p>  .output FILENAME 將輸出導(dǎo)入到指定的文件中</p><p>  .output stdout 將輸出打印到屏幕</p><p>  .mode M

87、ODE ?TABLE? 設(shè)置數(shù)據(jù)輸出模式(csv,html,tcl…)</p><p>  .nullvalue STRING 用指定的串代替輸出的NULL串</p><p>  .read FILENAME 執(zhí)行指定文件中的SQL語(yǔ)句</p><p>  .schema ?TABLE? 打印創(chuàng)建數(shù)據(jù)庫(kù)表的SQL語(yǔ)句</p>&l

88、t;p>  .separator STRING 用指定的字符串代替字段分隔符</p><p>  .show 打印所有SQLite環(huán)境變量的設(shè)置</p><p>  .help 顯示所有的可用命令和幫助信息</p><p>  .quit 退出命令行接口</p><p>  注:以上SQLite內(nèi)置指令前全部有一

89、個(gè)“.”,且指令后也無需加分號(hào);只有執(zhí)行常規(guī)的SQL語(yǔ)句時(shí)語(yǔ)句后才需要添加分號(hào)。</p><p>  網(wǎng)關(guān)應(yīng)用程序設(shè)計(jì)與實(shí)現(xiàn)</p><p>  完成了網(wǎng)關(guān)環(huán)境的搭建,下面就將進(jìn)入網(wǎng)關(guān)開發(fā)的重點(diǎn)——應(yīng)用程序的設(shè)計(jì)與實(shí)現(xiàn)。這里所指的“應(yīng)用程序”當(dāng)然包括后臺(tái)的CGI腳本和前臺(tái)的由HTML、JavaScript和CSS文件構(gòu)成的Web頁(yè)面,本章將就這兩部分程序的開發(fā)做出較為詳細(xì)的闡述。</

90、p><p>  在開始討論前,有必要事先規(guī)定一下各種文件存放的目錄結(jié)構(gòu),因?yàn)闊o論在CGI腳本還是Web頁(yè)面的編寫中都需要大量使用相對(duì)路徑來操作數(shù)據(jù)庫(kù)或讀取圖片文件。文件存放的目錄結(jié)構(gòu)如下:</p><p>  ====================家庭網(wǎng)關(guān)目錄路徑結(jié)構(gòu)====================</p><p>  /mntHTML文件、boa、bo

91、a.conf、mime.types等</p><p><b>  |</b></p><p>  +---cgi-binCGI腳本</p><p>  +---image圖片資源</p><p>  | +---img_indexindex.html使用的圖片</p><p>  |

92、 +---theme1主題1</p><p>  | +---theme2主題2</p><p>  | \---theme3主題3</p><p>  |............</p><p>  +---javascriptJavaScript腳本</p><p>  +---s

93、tyleCSS樣式表</p><p>  \---sqlite數(shù)據(jù)庫(kù)文件</p><p><b>  3.1 建立數(shù)據(jù)庫(kù)</b></p><p>  如前文所述,網(wǎng)關(guān)使用SQLite作為后臺(tái)數(shù)據(jù)庫(kù)。該數(shù)據(jù)庫(kù)中需要保存包括網(wǎng)關(guān)設(shè)置參數(shù)、房間配置數(shù)據(jù)、電器設(shè)備遙控指令、遙控開關(guān)指令、用戶密碼信息等在內(nèi)的所有數(shù)據(jù)。</p>&l

94、t;p>  在本項(xiàng)目中,數(shù)據(jù)庫(kù)文件名為“gateway.db”,在開發(fā)板上存放于/mnt/sqlite文件夾下。截止目前該數(shù)據(jù)庫(kù)中共建立了以下數(shù)據(jù)表:</p><p><b>  roominfo表</b></p><p>  該表用于存放房間編號(hào)和對(duì)應(yīng)的房間名稱,用于在配置房間信息時(shí)使用。</p><p>  CREATE TABLE

95、roominfo (</p><p>  roomid tinyint,--房間編號(hào)</p><p>  roomname varchar(20));--房間名稱</p><p><b>  示例數(shù)據(jù):</b></p><p>  INSERT INTO "roominfo" VALUES(1,&

96、#39;客廳');</p><p>  INSERT INTO "roominfo" VALUES(2,'飯廳');</p><p><b>  roomset表</b></p><p>  該表用于存放用戶的房間配置信息。在網(wǎng)關(guān)中,用戶最多可以設(shè)置16個(gè)房間,這16個(gè)房間的數(shù)據(jù)便存放于該表中。<

97、;/p><p>  CREATE TABLE roomset (</p><p>  id integer primary key unique check (id>=0 and id<16),--編號(hào),0~15,共16個(gè)</p><p>  roomid tinyint not null default 0);--房間編號(hào),來自roominfo,0表示

98、未設(shè)置房間</p><p><b>  示例數(shù)據(jù):</b></p><p>  INSERT INTO "roomset" VALUES(0,1);--房間0設(shè)置為“客廳”</p><p>  INSERT INTO "roomset" VALUES(1,2);--房間1設(shè)置為“飯廳”</p&g

99、t;<p>  appcmdlist表</p><p>  該表用于存放每一種家電設(shè)備的各條指令名稱字符串。如用于DVD控制的指令有:“開/關(guān)”、“出盒”、“播放”、“暫?!薄ⅰ巴V埂钡?。</p><p>  CREATE TABLE appcmdlist (</p><p>  apptype tinyint check(apptype>=0

100、and apptype<5),--家電類型,0~5</p><p>  cmdindex tinyint not null,--該指令在當(dāng)前家電指令列表中的索引號(hào)</p><p>  cmdname varchar(20) not null,--指令名稱,“開/關(guān)”、“播放”等</p><p>  primary key(apptype,cmdindex

101、));</p><p><b>  示例數(shù)據(jù):</b></p><p>  INSERT INTO "appcmdlist" VALUES(0,0,'開/關(guān)');</p><p>  INSERT INTO "appcmdlist" VALUES(0,1,'靜音');<

102、;/p><p><b>  appname表</b></p><p>  該表用于存放用戶已添加的家電設(shè)備的信息,以及每個(gè)家電對(duì)應(yīng)的信息轉(zhuǎn)發(fā)器編號(hào)。</p><p>  CREATE TABLE appname (</p><p>  apptype tinyint check(apptype>=0 and appty

103、pe<5),--家電類型</p><p>  roomid tinyint,--房間編號(hào)</p><p>  appid tinyint check(appid>=0 and appid<256), --家電編號(hào),每房間可有256個(gè)家電</p><p>  appname varchar(20) not null,--家電名稱</p&

104、gt;<p>  routeid smallint check(routeid>=0 and routeid<16) not null,--轉(zhuǎn)發(fā)器編號(hào)</p><p>  primary key(roomid,appid));</p><p><b>  示例數(shù)據(jù):</b></p><p>  INSERT INTO

105、 "appname" VALUES(1,1,0,'海爾空調(diào)',14);--在客廳添加“海爾空調(diào)”</p><p>  INSERT INTO "appname" VALUES(4,2,0,'北窗簾',12);--在飯廳添加“北窗簾”</p><p>  appctrlinfo表</p><p&g

106、t;  該表用于存放各個(gè)家電設(shè)備已經(jīng)學(xué)習(xí)的遙控指令信息。</p><p>  CREATE TABLE appctrlinfo(</p><p>  appcmd int,--已學(xué)習(xí)的遙控指令,4個(gè)字節(jié)長(zhǎng)度</p><p>  cmdindex tinyint,--該指令在當(dāng)前家電指令列表中的索引號(hào)</p><p>  appid tin

107、yint check(appid>=0 and appid<256),--家電編號(hào)</p><p>  roomid tinyint,--房間編號(hào)</p><p>  apptype tinyint check(apptype>=0 and apptype<5),--家電類型</p><p>  primary key(roomid,a

108、ppid,cmdindex));</p><p><b>  示例數(shù)據(jù):</b></p><p>  INSERT INTO "appctrlinfo" VALUES(1667457891,0,0,1,1);/*客廳中“海爾空調(diào)”的“開/關(guān)”遙控指令信息*/</p><p>  INSERT INTO "appc

109、trlinfo" VALUES(1734702945,0,0,2,4);/*飯廳中“北窗簾”的“開”遙控指令信息*/</p><p>  switchinfo表</p><p>  該表用于存放目前已添加的燈光開關(guān)設(shè)備的信息。</p><p>  CREATE TABLE switchinfo (</p><p>  roomid

110、 tinyint not null,--房間編號(hào)</p><p>  swid smallint check(swid>=0 and swid<4096),--遙控器地址,12位</p><p>  keyid tinyint check(keyid>=0 and keyid<16),--遙控器按鍵編號(hào),0~15</p><p>  r

111、outeid tinyint check(routeid>=0 and routeid<16),--轉(zhuǎn)發(fā)器編號(hào)</p><p>  swname varchar(20),--燈光開關(guān)名稱</p><p>  primary key(roomid,swid,keyid,routeid,swname));</p><p><b>  示例數(shù)據(jù):

112、</b></p><p>  INSERT INTO "switchinfo" VALUES(1,4,7,14,'測(cè)試燈光');--客廳中添加“測(cè)試燈光”</p><p>  INSERT INTO "switchinfo" VALUES(1,2,1,14,'test');--客廳中添加“test”&l

113、t;/p><p><b>  userpwd表</b></p><p>  該表用于存放用戶設(shè)置的普通密碼、超級(jí)密碼和安防密碼的md5碼。</p><p>  CREATE TABLE userpwd (</p><p>  pwdtype smallint primary key,--密碼類型,1-普通密碼,2-超級(jí)密碼

114、,3-安防密碼</p><p>  pwd char(32));--密碼的md5碼</p><p><b>  示例數(shù)據(jù):</b></p><p>  INSERT INTO "userpwd" VALUES(1,'e10adc3949ba59abbe56e057f20f883e');--普通密碼<

115、/p><p>  INSERT INTO "userpwd" VALUES(2,'e10adc3949ba59abbe56e057f20f883e');--超級(jí)密碼</p><p>  defvalues表</p><p>  該表用于存放網(wǎng)關(guān)的默認(rèn)設(shè)置參數(shù),以便于用戶恢復(fù)出廠設(shè)置。</p><p>  CR

116、EATE TABLE defvalues (</p><p>  key varchar[20],--設(shè)置名</p><p>  value varchar[50]);--設(shè)置默認(rèn)值</p><p><b>  示例數(shù)據(jù):</b></p><p>  INSERT INTO "defvalues"

117、 VALUES('userpwd','e10adc3949ba59abbe56e057f20f883e');</p><p>  --默認(rèn)普通密碼的md5碼</p><p>  INSERT INTO "defvalues" VALUES('safepwd','e10adc3949ba59abbe56e057f20

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論