基于Java的智能家居控制系統(tǒng)的設(shè)計信息控制端的設(shè)計論文初稿_第1頁
基于Java的智能家居控制系統(tǒng)的設(shè)計信息控制端的設(shè)計論文初稿_第2頁
基于Java的智能家居控制系統(tǒng)的設(shè)計信息控制端的設(shè)計論文初稿_第3頁
基于Java的智能家居控制系統(tǒng)的設(shè)計信息控制端的設(shè)計論文初稿_第4頁
基于Java的智能家居控制系統(tǒng)的設(shè)計信息控制端的設(shè)計論文初稿_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

PINGDINGSHANUNIVERSITY畢業(yè)論文(設(shè)計)題目:基于JAVA技術(shù)的智能家居控制系統(tǒng)的設(shè)計(信息控制端的設(shè)計)院(系):軟件學(xué)院專業(yè)年級:軟件工程2007級姓名:張燦燦學(xué)號:071530214指導(dǎo)教師:鮑義東講師2010年11月1日原創(chuàng)性聲明本人鄭重聲明:本人所呈交的畢業(yè)論文,是在指導(dǎo)老師的指導(dǎo)下獨立進行研究所取得的成果。畢業(yè)論文中凡引用他人已經(jīng)發(fā)表或未發(fā)表的成果、數(shù)據(jù)、觀點等,均已明確注明出處。除文中已經(jīng)注明引用的內(nèi)容外,不包含任何其他個人或集體已經(jīng)發(fā)表或撰寫過的科研成果。對本文的研究成果做出重要貢獻的個人和集體,均已在文中以明確方式標明。本聲明的法律責(zé)任由本人承擔(dān)。論文作者簽名:張燦燦日期:2010年11月1日關(guān)于畢業(yè)論文使用授權(quán)的聲明本人在指導(dǎo)老師指導(dǎo)下所完成的論文及相關(guān)的資料(包括圖紙、試驗記錄、原始數(shù)據(jù)、實物照片、圖片、錄音帶、設(shè)計手稿等),知識產(chǎn)權(quán)歸屬平頂山學(xué)院。本人完全了解平頂山學(xué)院有關(guān)保存、使用畢業(yè)論文的規(guī)定,同意學(xué)校保存或向國家有關(guān)部門或機構(gòu)送交論文的紙質(zhì)版和電子版,允許論文被查閱和借閱;本人授權(quán)平頂山學(xué)院可以將本畢業(yè)論文的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫進行檢索,可以采用任何復(fù)制手段保存和匯編本畢業(yè)論文。如果發(fā)表相關(guān)成果,一定征得指導(dǎo)教師同意,且第一署名單位為平頂山學(xué)院。本人離校后使用畢業(yè)論文或與該論文直接相關(guān)的學(xué)術(shù)論文或成果時,第一署名單位仍然為平頂山學(xué)院。論文作者簽名:張燦燦日期:2010年11月1日指導(dǎo)老師簽名:日期:基于JAVA技術(shù)的智能家居控制系統(tǒng)的設(shè)計(信息控制端的設(shè)計)摘要智能家居(SmartHome),又稱智能住宅。它是以住宅為平臺,兼?zhèn)浣ㄖ?、網(wǎng)絡(luò)通信、信息家電、設(shè)備自動化,集系統(tǒng)、結(jié)構(gòu)、服務(wù)、管理為一體的高效、舒適、安全、便利、環(huán)保的居住環(huán)境。與智能家居的含義近似的還有家庭自動化(HomeAutomation)、電子家庭(ElectronicHome、E-home)、數(shù)字家園(Digitalfamily)、網(wǎng)絡(luò)家居(NetworkHome),智能家庭/建筑(Inte1ligenthome/building)等。智能家居也可以定義為一個系統(tǒng)。利用計算機技術(shù)、網(wǎng)絡(luò)通訊技術(shù)、綜合布線技術(shù)、將與家居生活有關(guān)的各種子系統(tǒng),有機地結(jié)合在一起,通過統(tǒng)籌管理,讓家居生活更加舒適、安全、有效。本文以智能家居廣闊的市場需求為基礎(chǔ),選取家庭智能控制系統(tǒng)為研究對象。在對家庭樓宇自動化協(xié)議、嵌入式系統(tǒng)深入研究的基礎(chǔ)上,采用Java技術(shù)為平臺,成功開發(fā)了調(diào)速調(diào)光控制器、家用電器調(diào)節(jié)控制器等等各項功能。最后,對整個系統(tǒng)進行了大量的調(diào)試工作,包括軟件仿真和系統(tǒng)連機調(diào)試,結(jié)果證明這種網(wǎng)絡(luò)控制的方案是可行的。關(guān)鍵詞:SmartHome,JAVA,J2me,智能家居TheDesignofsmarthomesystembasedonJAVA(theinformationcontroldesign)AbstractSmartHome,alsoknownasSmartResidential.Itisresidentialasaplatform,combiningarchitecture,networkcommunications,informationappliances,equipmentautomation,collectionsystem,structure,services,managementfortheintegratedhigh-performance,comfort,safety,convenience,environmentalprotection,livingenvironment.ThemeaningofintelligenthomeandweresimilartoHomeAutomation,ElectronicHome,Digitalfamily,NetworkHome,Inte1ligenthome/building.Intelligenthomecanalsobedefinedasasystem.Theuseofcomputertechnology,networkcommunicationtechnology,integratedwiringtechnology,homelifeandthevarioussubsystems,thecombinationofmanagement,throughco-ordination,sothathomelifemorecomfortable,safeandeffective.Drivenbylargemarketrequirements,wechosetheintelligenthomesystemasresearchcontentandtheembeddedsystemasresearchtool.Basedonin-depthstudyofhomeautomationandbuildingautomationprotocolandembeddemsystem,successfullydevelopedthemotordriverandlightingcontroller,vacuumtypedejectascollectingdeviceonhigh-speedtrain,palmercoderbasedonprotocol.Lightingcontrollerbasedonprotocol.Last,wehavacarriedoutalotofworktodebugthewholesystemincludingsoftwaresimulationandsystemonlinedebugging.Theresulthasprovedthattheschemeofthenetworkcontrolisfeasible.KeyWords:SmartHome,JAVA,J2me

目錄PINGDINGSHANUNIVERSITY 11緒論 11.1引言 11.2研究的意義 11.3研究的內(nèi)容 2系統(tǒng)介紹 21.3.2模塊劃分 32需求分析 42.1可行性分析 4技術(shù)可行性 4操作可行性 42.2系統(tǒng)性能需求 52.3系統(tǒng)功能需求 53系統(tǒng)總體設(shè)計 123.1技術(shù)總體分析 12移動客戶端軟件設(shè)計 123.1.2智能控制軟件設(shè)計 173.1.3系統(tǒng)開發(fā)工具和環(huán)境 17智能家居平臺系統(tǒng)的技術(shù)特點 183.2系統(tǒng)網(wǎng)絡(luò)規(guī)劃 193.3系統(tǒng)功能模塊 193.3.1燈光控制 193.1.2信息家電控制 193.1.3信息家電控制器如何實現(xiàn)對空調(diào)的遙控 203.4系統(tǒng)工作原理 204智能家居系統(tǒng)功能 224.1家庭通信 224.2遠程電器控制模塊的模擬實現(xiàn) 235結(jié)論 24附錄 25參考文獻 28致謝 301緒論1.1引言隨著社會的發(fā)展和科學(xué)技術(shù)的進步,數(shù)字網(wǎng)絡(luò)生活時代已經(jīng)到來,以家庭智能化、物業(yè)管理現(xiàn)代化和社區(qū)服務(wù)信息化為典型特征的智能社區(qū)也在悄然應(yīng)運而生。住宅智能化是人類住宅的又一場新的革命。它能夠為人們提供更加輕松、有序、高效的現(xiàn)代生活方式,是未來居住模式的必然發(fā)展趨勢。隨之而然,智能家居系統(tǒng)也在逐漸成為一個新興的研究領(lǐng)域。智能家居提供的是一個具有高度安全性、生活舒適性和通信快捷性的信息化與自動居住空間。智能家居是指將家庭中各種與信息相關(guān)的通信設(shè)備、家用電器和家庭保安裝置,通過家庭總線技術(shù)連接到一個家庭智能化系統(tǒng)(即家庭控制器)上,以實現(xiàn)監(jiān)視、控制和家庭事務(wù)型管理,并保持這些設(shè)施與住宅環(huán)境的和諧與協(xié)調(diào)。智能家居系統(tǒng)能夠在不改變家中任何家電的情況下,對家里的電器、燈光、電源、家庭環(huán)境進行方便地控制,使人們盡享高科技帶來的簡便而時尚的現(xiàn)代生活。將社會的信息化建設(shè)與小區(qū)的信息化、智能化建設(shè)有機地融合起來,充分利用已有的寬帶網(wǎng)絡(luò),做到資源共享,達到節(jié)省投資、降低使用費用、方便物業(yè)管理,為用戶提供盡可能多的高品質(zhì)服務(wù),已成為房產(chǎn)商、電信運營商、物業(yè)管理公司、城市公用事業(yè)公司和用戶等幾方共同關(guān)注的問題。自動化的智能家居不再是一幢被動的建筑,相反,成了幫助主人盡量利用時間的工具,使家庭更為舒適、安全、高效和節(jié)能。家居智能化技術(shù)起源于美國,網(wǎng)絡(luò)系統(tǒng)中的各個設(shè)備均可實現(xiàn)資源的共享。因其布線簡單、功能靈活,擴展容易而被人們廣泛接受和應(yīng)用。目前,已經(jīng)有越來越多的機構(gòu)和個人開始了對智能家居的研究。1.2研究的意義智能家庭控制系統(tǒng)是以HFC、以太網(wǎng)、現(xiàn)場總線、公共電話網(wǎng)、無線網(wǎng)的傳輸網(wǎng)絡(luò)為平臺,控制技術(shù)為技術(shù)平臺,現(xiàn)場總線為應(yīng)用操作平臺,構(gòu)成一個完整的集家庭通信、家庭設(shè)備自動控制、家庭安全防范等功能的控制系統(tǒng)。

智能家居控制系統(tǒng)的總體目標是通過采用計算機技術(shù)、網(wǎng)絡(luò)技術(shù)、控制技術(shù)和集成技術(shù)建立一個由家庭到小區(qū)乃至整個城市的綜合信息服務(wù)和系統(tǒng),以此來提高住宅高新技術(shù)的含量和居民居住環(huán)境水平。

使人們享受到高科技帶來的方便快捷的生活方式。人們的生活方式在逐漸加快,因此生活中就需要更為便捷的生活方式。智能家居就是在這種情況下應(yīng)運而生的。人們需要通過一個按鈕就可以實現(xiàn)對家具的控制,減少了原來需要尋找遙控器或者是開關(guān)等方式帶來的不便。從而使人們的家更舒服,更方便。系統(tǒng)通常由系統(tǒng)服務(wù)器、家庭控制器(各種模塊)、各種路由器、電纜調(diào)制解調(diào)器頭端設(shè)備、交換機、通訊器、控制器、無線收發(fā)器、各種探測器、各種傳感器、各種執(zhí)行機構(gòu)、打印機等主要部分組成。1.3研究的內(nèi)容由于把系統(tǒng)分為客戶端、服務(wù)器端和網(wǎng)絡(luò)連接三個部分。而我主要負責(zé)客戶端的操作。因此本文主要研究客戶端中所實現(xiàn)的功能。由客戶端發(fā)送控制信息,控制服務(wù)器端的家居狀態(tài),服務(wù)器受到控制信號之后,修改現(xiàn)在的狀態(tài),并把修改之后的狀態(tài)返還給客戶端。系統(tǒng)介紹使用J2me技術(shù)實現(xiàn)手機界面,以及家用電器的監(jiān)視和控制、照明設(shè)備的監(jiān)視、調(diào)節(jié)和控制、門的控制、窗簾的控制……并實現(xiàn)客戶端與服務(wù)器端之間的通信。通過手機上的各個按鈕控制發(fā)送信號,進而實現(xiàn)家居的開關(guān)控制。系統(tǒng)選用J2me技術(shù)開發(fā)基于手機平臺的信息控制端軟件。以發(fā)送數(shù)據(jù)信號的方式發(fā)送到控制端,實現(xiàn)控制家居設(shè)備的功能。J2me是sun公司針對嵌入式、消費類電子產(chǎn)品推出的開發(fā)平臺,是一系列規(guī)范的集合,由JCP組織制定相關(guān)的JSR并發(fā)布,各個廠商會按照規(guī)范在自己的產(chǎn)品上進行實現(xiàn),但是必須要通過TCK測試,確保兼容性。通過使用J2me中的無線網(wǎng)絡(luò)開發(fā)技術(shù)實現(xiàn)手機客戶端與系統(tǒng)終端的通訊。使用通用連接框架技術(shù)建立HTTP連接。使用servlet技術(shù)實現(xiàn)計算機之間的即時通訊。1.3.2模塊劃分主頁面顯示智能家居控制系統(tǒng)的字樣,以及輸入密碼的輸入框。密碼輸入成功則可以直接進入智能家居控制系統(tǒng)的主界面。如果密碼輸入錯誤,則需要重新輸入。對密碼的設(shè)定采用最大不能超過八個字符的簡單定義來實現(xiàn)對系統(tǒng)安全的保護工作。密碼輸入成功則可以登陸控制家具的頁面。根據(jù)房間的布局,把整個家庭分為三個模塊。分別為客廳、廚房和臥室,對房間中的家居進行合理的分配,從而達到更高效的目的。同時為了方便修改密碼。把修改密碼的功能也和這三個控制頁面一起,放入到了同一個界面中。下面介紹各個房間中能夠控制的家用電器??蛷d中能夠控制的家用電器包括:防盜門、窗簾、吊燈、空調(diào)和電視。防盜門、窗簾和電視的控制分為兩個分別是“開啟”和“關(guān)閉”。吊燈的控制除了在“開啟”和“關(guān)閉”的基礎(chǔ)上增加了一個亮度調(diào)節(jié)的控制,用滑動條的形式來實現(xiàn)對溫度的調(diào)解。根據(jù)空調(diào)的特性,給空調(diào)又增加了溫度和濕度的控制。分別用兩個滑動條來實現(xiàn)對家居的控制。廚房中能夠控制的家用電器包括:燈、窗簾。廚房中的燈和窗簾的控制分為“開啟”和“關(guān)閉”兩個設(shè)置。臥室中能夠控制的家用電器包括:床頭燈、窗簾和吊燈。臥室中的床頭燈和臺燈一樣在開啟和關(guān)閉的基礎(chǔ)上增加了對亮度調(diào)節(jié)的控制。窗簾則只有“開啟”和“關(guān)閉”的功能為了方便人們的操作,增加了修改密碼的功能。在臥室的下面就是改密的字樣。點擊確定按鈕,則可以修改密碼,鍵入新密碼,返回密碼修改成功的字樣。無論何時何地,只要您想要控制家中家居的狀態(tài),拿起手機,進入到智能家居控制系統(tǒng),選擇要更改的房間,以及要控制的電器,選擇之后點擊發(fā)送按鈕,就可以實現(xiàn)對家用電器狀態(tài)的更改??照{(diào)和其它的模式則不同,不僅具有開和關(guān)的狀態(tài),還增加了溫度的調(diào)節(jié)和控制。電燈的控制方式和空調(diào)的類似,在開和關(guān)控制的基礎(chǔ)上增加了調(diào)解亮度的功能。使人們能夠根據(jù)自己的喜好來調(diào)節(jié)亮度。豐富了人們選擇的范圍,使選擇方式不再單一。

2需求分析為了方便后續(xù)工作的進行。減少開發(fā)過程中的工作量。在代碼編寫之前就要做好整個系統(tǒng)的規(guī)劃工作。探討系統(tǒng)的可行性。2.1可行性分析驗證一個系統(tǒng)是否可行,需要從很多的方面著手分析。其中主要的內(nèi)容包括:技術(shù)可行性、經(jīng)濟可行性和操作可行性三個方面。技術(shù)可行性系統(tǒng)采用J2me技術(shù)。使用J2me中特有的手機模擬器進行開發(fā),實現(xiàn)對各種家具的控制。J2me技術(shù)規(guī)范定義了Java技術(shù)在資源有限制的設(shè)備中的表現(xiàn)形式。J2me主要適用于小型嵌入式設(shè)備,這些設(shè)備與PC或是服務(wù)器設(shè)備相比沒有統(tǒng)一的硬件標準、外觀與操作方式,其功用也是千差萬別。但是J2me在使用于這些設(shè)備的同時也保留了Java的傳統(tǒng)特性,即任何時間和任何地點的代碼具有可移植性、部署靈活性、安全的網(wǎng)絡(luò)傳輸性,以及代碼穩(wěn)定性。(1)在給定的時間內(nèi)能夠?qū)崿F(xiàn)任務(wù)書中的功能。能夠?qū)崿F(xiàn)頁面的跳轉(zhuǎn)和以及對服務(wù)器端家電的控制。(2)從軟件的質(zhì)量方面來看,此軟件運行速度較高,功能具備有實用價值。后期軟件維護代價相應(yīng)比較小。(3)軟件的生產(chǎn)率較高。能在短時間內(nèi)完成有效地工作。經(jīng)濟可行性此系統(tǒng)雖然需要依靠硬件來實現(xiàn),但是開發(fā)成本相對較低。后期維護簡單方便。如果能夠?qū)崿F(xiàn),則能夠取得可觀的效益。收益遠遠大于支出,因此此項目在經(jīng)濟方面是可行的。操作可行性對于用戶來說,能夠使用該軟件系統(tǒng),能夠方便人們的生活,使人們生活的環(huán)境更加的美觀。墻面上不會再到處都是開關(guān),同時也不用為了尋找遙控器而發(fā)愁。使用此系統(tǒng),能夠使人們的生活方式發(fā)生天翻地覆的變化。讓人們享受科技帶來的方便生活。在家中你可以拿起手機,選擇要控制的家電,然后更改其開關(guān)狀態(tài),在戶外也同樣可以控制,實現(xiàn)家中和戶外同等控制的功能,同時優(yōu)化了無線網(wǎng)絡(luò)傳輸過程中網(wǎng)絡(luò)延遲帶來的時間上的延遲,使人們在最短的時間內(nèi)接收到服務(wù)器端返回的家居控制的信息。2.2系統(tǒng)性能需求智能家居控制系統(tǒng)是一個很有發(fā)展前景的系統(tǒng)。因此為了使本系統(tǒng)能夠長期使用,必須使系統(tǒng)滿足安全、穩(wěn)定、可靠、高效的運行模式,生活水平的提高,伴隨著生活質(zhì)量的提高。同時人們生活的節(jié)奏也逐漸加快,怎樣高速的完成任務(wù)就是我們要考慮的主要問題。因此系統(tǒng)應(yīng)滿足如下性能需求:(1)較強的擴展能力和通用性,此系統(tǒng)即能夠滿足一個家庭之間的通信,同時對一個小區(qū)來說也同樣適用。由于這次我們主要研究的是控制家居這方面的內(nèi)容,以后,我們還可以擴展此系統(tǒng),加上遠程通信、智能報警等等各項功能。(2)由于本系統(tǒng)的界面簡單明了,因此人們很容易就學(xué)會操作。擴大了系統(tǒng)的用戶群。為了提高人們的生活質(zhì)量,本系統(tǒng)應(yīng)運而生。在不改變?nèi)藗兩钭≌那闆r下,有效的實現(xiàn)對家居的控制。使人們可以節(jié)約時間,享受生活。(3)系統(tǒng)的準確性和及時性系統(tǒng)處理的準確性和及時性是我們要考慮的主要問題。在控制家電的過程中,我們一定要確保對家居狀態(tài)更改的準確而且及時。優(yōu)化系統(tǒng),使系統(tǒng)的反應(yīng)能力和控制家居的能力滿足用戶多功能的需求。2.3系統(tǒng)功能需求項目主要實現(xiàn)用戶對家用電器的控制,其中包括家居的開和關(guān),以及其他的相關(guān)操作??蛻舳税l(fā)送控制信息的請求,通過網(wǎng)絡(luò)傳輸方式發(fā)送到服務(wù)器端,服務(wù)器端相應(yīng)客戶端的操作,然后再把結(jié)果返回給客戶器端。其中家用電器的控制在開和關(guān)燈相關(guān)控制的基礎(chǔ)上增加了智能調(diào)節(jié)控制??照{(diào)實現(xiàn)了用下拉框的形式開實現(xiàn)對濕度和溫度的控制。進而為人們實現(xiàn)對家具的控制提供了方便。其中,系統(tǒng)交互圖如下:客戶端MIDlet客戶端MIDlet發(fā)送消息和數(shù)據(jù)服務(wù)器Servlet處理登錄請求處理登錄請求處理登錄請求Update_AccountUpdate_AccountList_AccountLogin_User圖(1)客戶端服務(wù)器端系統(tǒng)交互圖對相關(guān)功能的描述如下:該系統(tǒng)共分為三個模塊,分別為客廳、廚房和臥室。模塊一:客廳中的家用電器主要包括:防盜門、窗簾、吊燈、空調(diào)和電視。實現(xiàn)對防盜門、窗簾的開關(guān)控制、對吊燈的開關(guān)操作以及亮度調(diào)節(jié)的控制、對空調(diào)的開關(guān)操作以及對室內(nèi)溫度和濕度的控制以及調(diào)節(jié)控制電視的開和關(guān),等等一系列的操作。模塊二:廚房中的家用電器主要包括:吊燈和窗簾。還是用下拉菜單實現(xiàn)對各個家電的開關(guān)控制。模塊三:臥室中的家用電器主要包括:吊燈、窗簾和臺燈。這個模塊中的家具設(shè)計的雖然不是很多,但是也同樣實現(xiàn)了家具的開關(guān)和家用電器的監(jiān)制和控制。模塊四:系統(tǒng)中為了保護使用者的權(quán)限,我們設(shè)置了密碼登陸。首頁的時候必須輸入密碼才能進入到智能家居控制系統(tǒng)中。在頁面中增加了修改密碼的功能。用戶只需要輸入新的密碼,就可以完成對密碼修改的工作。系統(tǒng)運行主界面如下所示:圖(2)智能家居控制系統(tǒng)主界面鍵入密碼“1234”之后點擊菜單中的登陸按鈕我們就可以進入到智能家居控制系統(tǒng)的頁面。如果輸入密碼錯誤,則跳轉(zhuǎn)到密碼輸入錯誤頁面,重新輸入密碼,直到密碼輸入正確,則可以進入到控制頁面。其中密碼輸入錯誤之后頁面提示界面如下:圖(3)密碼提示界面輸入密碼正確之后,則可以進入到系統(tǒng)控制界面。其中包括:客廳、廚房、臥室和改密功能。其中,系統(tǒng)運行界面圖如下所示:圖(4)系統(tǒng)運行界面圖客廳、廚房、臥室的布局都是類似的,現(xiàn)在我們選擇以客廳為例:其運行界面圖如下所示:圖(5)客廳運行頁面選擇空調(diào)之后,我們可以選擇其開關(guān)狀態(tài),以及溫度和濕度的調(diào)節(jié)。然后發(fā)送數(shù)據(jù),將要更改的信息通過網(wǎng)絡(luò)發(fā)送到服務(wù)器端。由服務(wù)器端響應(yīng)數(shù)據(jù),然后將數(shù)據(jù)返回客戶端。其控制圖如下所示:圖(6)運行界面如圖所示

3系統(tǒng)總體設(shè)計本系統(tǒng)主要研究基于J2me的智能家居控制系統(tǒng)客戶端的信息。運用J2me語言編寫代碼程序。通過硬件和軟件相結(jié)合的方式來實現(xiàn)對家用電器的監(jiān)制和控制。3.1技術(shù)總體分析軟件總體設(shè)計是基于J2me平臺開發(fā)智能家居系統(tǒng)的移動客戶端和服務(wù)器端。J2me在小型化、可移植性方面有很多優(yōu)勢,是現(xiàn)在非常流行的程序設(shè)計語言。本系統(tǒng)是使用C/S網(wǎng)絡(luò)結(jié)構(gòu)并將GSM網(wǎng)絡(luò)與互聯(lián)網(wǎng)相結(jié)合的方式,在互聯(lián)網(wǎng)上擁有獨立的服務(wù)器,實現(xiàn)移動客戶端與家庭主機之間的實時通信。3.1.1移動客戶端軟件設(shè)計在通信過程中,移動客戶端與家庭系統(tǒng)模塊是通過TCP協(xié)議建立的可靠連接。首先移動客戶端和家庭系統(tǒng)模塊之間建立Socket連接,家庭系統(tǒng)模塊在端口上監(jiān)聽等待客戶端連接??蛻舳诉B接之后,需要輸入密碼,密碼正確后服務(wù)器端會開啟一個線程為此客戶通信,并將這個Socket連接保存到向量中。在客戶端和家庭系統(tǒng)模塊之間建立輸入輸出流。系統(tǒng)客戶端總共設(shè)計了兩個包,分別為familyClient和familyClient.NetWork。其中,familyClient包中包含了六個類,分別為ControlCanvas.java、FamilyList.java、MainMID.java、MenuCanvas.java、MidPlayer.java和PassWordCanvas.java。而familyClient.NetWork包中則是留了兩個接口分別問send()和recived()兩個接口。其中ControlCanvas類中使用低級用戶Canvas來設(shè)置用戶界面按鈕,實現(xiàn)代碼如下:privateCommandCmd_Back; privateCommandCmd_Send;Cmd_Back=newCommand("返回",Command.BACK,1); Cmd_Send=newCommand("發(fā)送",Command.OK,1);由于程序中對于空調(diào)、電燈等的控制除了開和關(guān)的控制之外,增加了滑動條,因此,在這兒也對滑動條進行了定義。privateintON_OFF_NUM=0;//開關(guān)鍵參數(shù) privateintROLL=100;//滾動條參數(shù) privateintDOU_ROLL=100;//第二個滾動條參數(shù)頁面中的背景圖片都是在畫布中實現(xiàn)的,因此這就需要使用繪制圖片的功能。其調(diào)用的代碼如下:if(Fl.getBackImage()!=null){ g.drawImage(Fl.getBackImage(),0,0,Graphics.TOP|Graphics.LEFT); } if(Type==ControlCanvasType_STYLE_ON_OFF){ //開關(guān)樣式 draw_On_Off_String(g,getWidth()/5,getHeight()/3); }elseif(Type==ControlCanvasType_STYLE_ROLL){ //滾動樣式 draw_roll_Style(g); }elseif(Type==ControlCanvasType_STYLE_DOUBLE_ROLL){ //雙滾動條樣式 draw_doubleroll_Style(g);開啟和關(guān)閉按鈕同樣也是在畫布上實現(xiàn)的,對于位置通過錨點來控制它們具體的方位,錨點的作用就是設(shè)置占用屏幕矩形方塊的具體位置。為了區(qū)別按鈕我們把按鈕的顏色也畫了出來。對于按鈕顏色的定義使用setColor()方法來對其進行定義。在Graphics中還提供了對字體控制的方法。每個Graphics都有一個Font對象與其關(guān)聯(lián),來進行文字的渲染操作,調(diào)用其類方法setFont(null),即可使字體恢復(fù)到默認狀態(tài)。使用staticFontgetFont(intface,intStyle,intsize)來獲得一個對象以表示字體所具有制定的外觀。使用的均為最大字體。Face參數(shù),用來定義字體的外觀。其中使用到的Font類定義的外觀常數(shù)如下:StaticintFACE_PROPORTIONAL:“比例”字體外觀,數(shù)值64被制定給此數(shù)。Style參數(shù),用來定義字體的樣式。在這個類中使用到Font類定義的樣式參數(shù)如下:StaticintSTYLE_PLAIN:格式常數(shù)“常規(guī)”,數(shù)值0被制定給此常數(shù)。StaticintSTYLE_BOLD:格式常數(shù)“加粗”,數(shù)值1被制定給此常數(shù)。FamilyList類中定義了對智能家居控制系統(tǒng)的集中選擇。其中包括對title、選中菜單的定義。還有上面講述的對按鈕的定義。由于在選擇的時候有音效因此在這個類中隊音效這個方法進行了調(diào)用。調(diào)用如下:MidPlayermp=newMidPlayer(); mp.sound();對于畫布的繪制包含對顏色、錨點以及字體大小位置等的設(shè)置。同時在鍵盤中添加了快捷鍵。其中,程序中使用到的方法如下所示: if(BackImage!=null){ g.drawImage(BackImage,0,0,Graphics.TOP|Graphics.LEFT); } for(inti=0;i<ITEMS.length;i++){ Fontfnt=Font.getDefaultFont(); if(i!=SeletedItem){fnt=Font.getFont(Font.FACE_PROPORTIONAL,Font.STYLE_PLAIN, Font.SIZE_LARGE); g.setFont(fnt); g.setColor(0x0022AA); g.drawString(ITEMS[i],pointX,BaseY+i*30,Graphics.TOP|Graphics.LEFT); }else{fnt=Font.getFont(Font.FACE_PROPORTIONAL,Font.STYLE_PLAIN|Font.STYLE_BOLD,Font.SIZE_LARGE); g.setFont(fnt); g.setColor(0xAA2200);g.drawString(ITEMS[i],pointX,BaseY+i*30,Graphics.TOP|Graphics.LEFT); g.drawRect(pointX-5,BaseY+i*30, ITEMS[i].length()*12+13,20);//畫選中框 } } }在程序中畫圖,必須定義基點。即橫坐標和縱坐標的基點如下:intpointX=40; intBaseY=40;MainMID類中定義了系統(tǒng)的初始界面。在這個類中定義了系統(tǒng)的注冊界面以及密碼頁面。使用以下按鈕來實現(xiàn)對屏幕的控制。Cmd_Exit=newCommand("退出",Command.EXIT,2); Cmd_Submit=newCommand("登入",Command.SCREEN,1); Cmd_Back=newCommand("回刪",Command.BACK,1);本程序中為了方便操作,將系統(tǒng)原始密碼設(shè)定為“1234”其中使用到的代碼如下所示:f(rs.getNextRecordID()==1){byte[]psw={'1','2','3','4'}; rs.addRecord(psw,0,psw.length);MenuCanvas類中定義了背景顏色、文字的初始高度以及滾動條顯示與否。程序中定義了客廳、廚房、臥室以及改密功能。其中定義類型如下所示: privateString[]SELECT_ITEM={"客廳","廚房","臥室","改密"};對于重繪Canvas。需要獲取屏幕的高度和寬度。獲取內(nèi)容如下所示: intwidth=g.getClipWidth(); intheigh=g.getClipHeight();背景和滾動條都需要在屏幕中畫出來。其中對于屏幕的繪制實現(xiàn)方法如下所示: g.setColor(Color_BackLine); g.drawRect(0,0,width-1,heigh-1); g.setColor(0xFFFFFF); Fontfnt=Font.getDefaultFont(); fnt=Font.getFont(Font.FACE_PROPORTIONAL,Font.STYLE_BOLD, Font.SIZE_LARGE); g.setFont(fnt); drawLoadingBar(g);//畫滾動條 drawMenus(g,width,heigh);MidPlayer類中實現(xiàn)的方法是音效的實現(xiàn)。使用MMAPI進行音效開發(fā),首先需要導(dǎo)入相關(guān)的開發(fā)包,importjavax.microedition.media.Manager;importjavax.microedition.media.MediaException;importjavax.microedition.media.Player;importjavax.microedition.media.PlayerListener;創(chuàng)建一個Player對象的方式,從InputStream中讀取指定路徑的數(shù)據(jù)源或者DataSource和InputStream類型的數(shù)據(jù)源,分別返回一個Player,當一個Player對象被創(chuàng)建后,使用Player接口的Start()方法就會盡可能快地啟動數(shù)據(jù)的播放,當數(shù)據(jù)播放完畢后,Player會自動關(guān)閉。從InputStream中讀取數(shù)據(jù)源并創(chuàng)建Player,具體代碼如下: publicvoidsound(){ PlayermusicPlayer=null; try{ InputStreamis=getClass().getResourceAsStream("/Audio.wav"); musicPlayer=Manager.createPlayer(is,"audio/X-wav"); musicPlayer.prefetch(); musicPlayer.start(); }catch(IOExceptionex){ }catch(MediaExceptionex){ } }PassWordCanvas類實現(xiàn)對密碼的修改和控制。其中textfield實現(xiàn)對TextField進行實例化。以及對密碼的控制。對背景顏色值以及背景線條顏色值進行控制。顏色控制代碼如下所示: privateintColor_Background=0x000000;privateintColor_BackLine=0xFFFFFF;程序使用低級界面局必須要繼承Canvas這個抽象類,Canvas是Displaysble的直接子類,屬于J2me中的低級API。Canvas的核心就是paint()這個方法,這個方法主要是負責(zé)繪制屏幕上的畫面。每當屏幕需要繪制時,就會產(chǎn)生重繪事件,系統(tǒng)就會自動調(diào)用paint(),并傳入一個Graphics對象。而調(diào)用reapaint()方法來產(chǎn)生重繪事件的方法是需要四個參數(shù),分別用來指示起始坐標(X,y)和長度,另一個則不需要任何參數(shù),代表整個畫面重新繪制。繪制的代碼如下所示: protectedvoidpaint(Graphicsg){ intwidth=g.getClipWidth();//獲取Canvas寬度 intheigh=g.getClipHeight();//獲取Canvas高度g.setColor(Color_Background); g.fillRect(0,0,width-1,heigh-1); g.drawImage(back,0,0,Graphics.TOP|Graphics.LEFT); g.setColor(Color_BackLine); g.drawRect(0,0,width-1,heigh-1); Fontfnt=Font.getDefaultFont(); fnt=Font.getFont(Font.FACE_PROPORTIONAL,Font.STYLE_BOLD, Font.SIZE_LARGE); g.setFont(fnt); g.setColor(0x0011CC); g.drawString(MainMID.TITLE,getWidth()/6+10,10,Graphics.TOP |Graphics.LEFT);//畫標題 g.setColor(0x00AADD); g.drawString("密碼:",25,222,Graphics.TOP|Graphics.LEFT); if(change_PSW_Success){ g.drawString("密碼修改成功",20,80,Graphics.TOP|Graphics.LEFT); }drawWords(g);}當客戶端向服務(wù)器端發(fā)送控制信號時,家庭系統(tǒng)模塊將接受的信息向向量中所以的連接進行廣播,使每個用戶都能接收到該用戶發(fā)出的信息。在智能家居控制方面在客戶端設(shè)計獨立的控制界面使客戶更容易的完成對家電的控制。該系統(tǒng)的另一個亮點是在客戶端可以實現(xiàn)影音娛樂,通過流媒體播放存儲在家庭系統(tǒng)模塊的web服務(wù)器上??蛻舳顺绦蚪Y(jié)構(gòu)圖如下所示:客戶端程序主界面客戶端程序主界面影音娛樂連接web服務(wù)器家電控制家庭系統(tǒng)模塊圖(7)客戶端程序結(jié)構(gòu)圖智能控制軟件設(shè)計家庭系統(tǒng)模塊建立兩個Socket連接的服務(wù)器端,分別對應(yīng)串口通信接口和移動客戶端,并為之服務(wù)。處理客戶端發(fā)送的信息,通過串口向單片機發(fā)送控制指令,完成客戶端對家電的控制,同時接收來自單片機發(fā)送的采集信息,將信息反饋給移動客戶端。該部分在整個系統(tǒng)中起到橋梁和紐帶的作用,是智能家居系統(tǒng)的核心。連接客戶端和服務(wù)器端。系統(tǒng)開發(fā)工具和環(huán)境本系統(tǒng)對環(huán)境要求不高,需要一些基本的硬件,以及兩臺電腦。其中裝有集成Eclipse3.2、jdk-1.5以及sun.java.2_5_2。因此成本較低。是用虛擬器的形式來實現(xiàn)對家居的控制。通過客戶端發(fā)送給信息等待服務(wù)器端來響應(yīng)。利用Java的無線應(yīng)用技術(shù),結(jié)合J2me和J2ee平臺,設(shè)計出健壯、高效的企業(yè)級無線應(yīng)用程序。應(yīng)用java無線應(yīng)用技術(shù)設(shè)計和實現(xiàn)智能家居控制系統(tǒng)。該系統(tǒng)是桌面型客戶管理系統(tǒng)在智能移動終端上的擴展。由于基本不具備自主開發(fā)能力,即使設(shè)計完成以后,用戶通常也不能對其中的程序功能進行修改,必須有一套開發(fā)工具和環(huán)境才能進行開發(fā)。開發(fā)時往往有主機和目標機的概念,主機用于信息的收發(fā),目標機作為最后的執(zhí)行機,開發(fā)時需要交替結(jié)合進行。為了適應(yīng)網(wǎng)絡(luò)發(fā)展的要求,未來的嵌入式設(shè)備必然要求硬件上提供各種網(wǎng)絡(luò)通信接口。傳統(tǒng)的單片機對于網(wǎng)絡(luò)支持不足,而新一代的嵌入式處理器已經(jīng)開始內(nèi)嵌網(wǎng)絡(luò)接口,除了支持TCP/IP協(xié)議,還有的支持IEEE1394、USB、CAN、Bluetooth或IrDA通信接口中的一種或者幾種,同時也需要提供相應(yīng)的通信組網(wǎng)絡(luò)協(xié)議軟件和物理層驅(qū)動軟件。軟件方面系統(tǒng)內(nèi)核支持網(wǎng)絡(luò)模塊,甚至可以再設(shè)備上嵌入Web瀏覽器,真正實現(xiàn)隨時隨地用各種設(shè)備上網(wǎng)。嵌入式設(shè)備能與用戶親密接觸,最重要的因素就是它能提供非常友好的用戶界面。圖像界面,靈活的控制方式,使得人們感覺嵌入式設(shè)備就像是一個熟悉的老朋友。這方面的要求使得嵌入式軟件設(shè)計者要在圖形界面,多媒體技術(shù)上痛下苦功。手寫文字輸入、語音撥號上網(wǎng)、收發(fā)電子郵件以及彩色圖形、圖像都會使使用者獲得自由的感受。目前一些先進的PDA在顯示屏幕上已實現(xiàn)漢字寫入、短消息語音發(fā)布,但一般的嵌入式設(shè)備距離這個要求還有很長的路要走。3.1.4智能家居平臺系統(tǒng)的技術(shù)特點智能家庭網(wǎng)絡(luò)隨著集成技術(shù)、通信技術(shù)、互操作能力和布線標準的實現(xiàn)而不斷改進。它涉及到對家庭網(wǎng)絡(luò)內(nèi)所有的智能器具、設(shè)備和系統(tǒng)的操作、管理,以及集成技術(shù)的應(yīng)用。其技術(shù)特點表現(xiàn)如下:1.通過家庭網(wǎng)關(guān)及其系統(tǒng)軟件建立智能家居平臺系統(tǒng)家庭網(wǎng)關(guān)是智能家庭局域網(wǎng)的核心部分,主要完成家庭內(nèi)部網(wǎng)絡(luò)各種不同通信協(xié)議之間的轉(zhuǎn)換和信息共享,以及同外部通信網(wǎng)絡(luò)之間的數(shù)據(jù)交換功能,同時,網(wǎng)關(guān)還負責(zé)家庭智能設(shè)備的管理和控制。2.統(tǒng)一的平臺用計算機技術(shù)、微電子技術(shù)、通信技術(shù),家庭智能終端將家庭智能化的所有功能集成起來,使智能家居建立在一個統(tǒng)一的平臺之上。首先,實現(xiàn)家庭內(nèi)部網(wǎng)絡(luò)與外部網(wǎng)絡(luò)之間的數(shù)據(jù)交互;其次,還要保證能夠識別通過網(wǎng)絡(luò)傳輸?shù)闹噶顣r合法的指令,而不是“黑客”的非法入侵。因此,家庭智能終端既是家庭信息的交通樞紐,又是信息化家庭的保護神。3.通過外部擴展模塊實現(xiàn)與家電的互聯(lián)為實現(xiàn)家用電器的集中控制和遠程控制功能,家庭智能網(wǎng)關(guān)通過有線或無線的方式,按照特定的通訊協(xié)議,借助外部擴展模塊控制家電或照明設(shè)備。4.嵌入式系統(tǒng)的應(yīng)用以往的家庭智能終端絕大多數(shù)是由單片機控制。隨著新功能的增加和性能的提升,將處理能力大大增強的具有網(wǎng)絡(luò)功能的嵌入式操作系統(tǒng)和單片機的控制軟件程序作了相應(yīng)的調(diào)整,使之有機地結(jié)合成完整的嵌入式系統(tǒng)。3.2系統(tǒng)網(wǎng)絡(luò)規(guī)劃當前大多數(shù)新建小區(qū)都安裝了智能小區(qū)管理系統(tǒng),通信總線一般采用RS-485或CAN總線燈。我們的設(shè)想是能夠利用現(xiàn)有的總線通信,將家庭網(wǎng)絡(luò)控制系統(tǒng)內(nèi)嵌于智能小區(qū)管理系統(tǒng)之內(nèi)。以其達到節(jié)約布線投資、實現(xiàn)系統(tǒng)高度集成的目的。在減少不必要開支的同時,還節(jié)約了綜合布線的時間。系統(tǒng)網(wǎng)絡(luò)采用無線控制傳輸系統(tǒng)實現(xiàn)家居之間的交互和通信。3.3系統(tǒng)功能模塊燈光控制無線射頻燈光控制系統(tǒng)由智能面板開關(guān)和調(diào)光器組成,調(diào)光器用以發(fā)送和接收命令信號,命令通過無線電傳播,而不是通過家庭的電源線路傳輸。每個面板開關(guān)都備有一個不同的遙控識別代碼。這些代碼利用19位識別技術(shù),使接收器能準確辨別每個指令。即使鄰居同時使用,也絕對不會因其遙控器干擾而發(fā)生傳輸錯誤。調(diào)光開關(guān)同樣內(nèi)置RF無線射頻發(fā)射器,能獨立于遙控器或移動開關(guān)之外,控制落地?zé)艋蜃罒舻拈_關(guān)或隨意調(diào)節(jié)燈光亮度。減少干擾,傳送或接收指令更加準確無誤。3.1.2信息家電控制信息家電控制是一個整合了紅外控制和無線控制的多功能遙控系統(tǒng)。它可以控制多達五種紅外設(shè)備(如:電視機、空調(diào)、DVD、功放、窗簾等)和開關(guān)、插座等無線設(shè)備。信息家電控制系統(tǒng)主要由信息家電控制器和各種智能遙控開關(guān)組成。信息家電控制器可以把普通紅外電器的遙控器的編碼通過學(xué)習(xí)的方式轉(zhuǎn)存下來從而替代原有的家電遙控器。同時它本身還是無線遙控器,可以發(fā)射433.92MHz頻率的控制信號,所以它可以控制這個頻段的智能開關(guān)、智能插座以及無線紅外轉(zhuǎn)發(fā)器等。信息家電控制器如何實現(xiàn)對空調(diào)的遙控空調(diào)的紅外編碼和其他家電的紅外編碼有很大區(qū)別,空調(diào)遙控器上每一個按鍵所對應(yīng)的紅外編碼不是固定的。比如按下溫度增加或減少的按鍵,它并不是簡單地發(fā)送一個固定的溫度增加或減少的紅外編碼,而是向空調(diào)發(fā)送一個當前工作狀態(tài)的編碼(這個編碼包含空調(diào)當前是多少度)。所以信息家電遙控器不能只是簡單地學(xué)習(xí)空調(diào)遙控器上的幾個按鍵來實現(xiàn)對空調(diào)的完全控制。用戶只能通過學(xué)習(xí)空調(diào)比較常用的工作狀態(tài)來達到控制空調(diào)的目的。3.4系統(tǒng)工作原理系統(tǒng)由多個類構(gòu)成。需要客戶端通過網(wǎng)絡(luò)發(fā)送對家居的控制。服務(wù)器端接收到客戶端發(fā)送的信息,然后再返回給客戶端。本系統(tǒng)是基于HTTP網(wǎng)絡(luò)的用于智能家居環(huán)境中的一種遠程自動控制系統(tǒng)。其工作原理為:用戶通過自身的手機發(fā)出命令請求,在家值守的家庭系統(tǒng)模塊接收信息并對信息進行處理,把處理結(jié)果通過串行總線傳輸?shù)絾纹瑱C上,單片機根據(jù)信息調(diào)制出相應(yīng)的紅外頻率控制相應(yīng)的設(shè)備,完成用戶給出的命令。并把最終的控制結(jié)果返回給客戶端。客戶端與服務(wù)器端交互圖如下:Login_UserLogin_UserLogin_UserLogin_User客戶端MIDlet發(fā)送消息和數(shù)據(jù)服務(wù)器Servlet處理登錄請求處理登錄請求處理登錄請求圖(8)客戶端與服務(wù)器端交互圖系統(tǒng)工作原理圖如下服務(wù)器服務(wù)器類類網(wǎng)絡(luò)客戶端圖(8)系統(tǒng)工作原理圖各個程序之間通過方法和類的調(diào)用來建立關(guān)聯(lián)。選擇登陸智能家居控制系統(tǒng),該界面實現(xiàn)內(nèi)容主要包含在MainMID這個類中,其中需要鍵入密碼,同時如果密碼輸入錯誤,也可以對密碼再進行修改。直至密碼輸入正確。則會跳入到下一個頁面。下一個頁面則是家具的控制頁面。選擇所要控制的家具類型,進入相應(yīng)的房間之后,我們就可以選擇要控制的家電類型來實現(xiàn)對家居的控制。然后通過網(wǎng)絡(luò)連接將要發(fā)送的數(shù)據(jù)發(fā)送到服務(wù)器端。等待服務(wù)器端做出響應(yīng)。

4智能家居系統(tǒng)功能客戶端完成的主要功能包括對家居的控制。通過客戶端發(fā)送控制信息通過網(wǎng)絡(luò)傳送到服務(wù)器端,再由服務(wù)器端返回給客戶端。進而實現(xiàn)對家居的控制。其中,系統(tǒng)功能結(jié)構(gòu)圖如下所示:信息發(fā)送端信息發(fā)送端用戶登錄信息發(fā)送信息接收家具控制用戶注冊修改密碼發(fā)送控制信號接收返回信息房間選擇家居選擇家居狀態(tài)選擇圖(9)系統(tǒng)功能結(jié)構(gòu)圖4.1家庭通信智能家庭控制系統(tǒng)的主要功能包括家庭通信、家庭設(shè)備自動控制和遠程控制三個方面。

主要考慮遠程控制這些方面。由于人們生活水平的提高,人們對生活模式的要求也越來越高,因此智能家居主要致力于改變?nèi)藗兊纳钅J?,使人們的生活更加的簡單方便。使用戶不管在任何地方都能夠隨心所欲的控制家居。使家居滿足人們的要求。因此如何更人性化的設(shè)計智能家居使它能夠滿足人們的需求。這就是我們要考慮的問題。由手機端發(fā)送控制信息,控制服務(wù)器端的家電設(shè)備,然后由服務(wù)器端響應(yīng),將響應(yīng)的信號返回客戶端。進而完成對家居的控制。4.2遠程電器控制模塊的模擬實現(xiàn)用無線通信方式進行家電的控制靈活性較強、覆蓋范圍較廣,免去了綜合布線的費用和精力,缺點是家庭內(nèi)部要有家庭網(wǎng)關(guān)和無線路由路,接收端還要有響應(yīng)的接收裝置,成本較高。因此,基于實用性和大眾化方面考慮,本文所研究的家電控制器的控制采用I/O控制。家電的本地集中控制硬件設(shè)計是利用嵌入式系統(tǒng)的I/O口對家用電器的用電進行控制。系統(tǒng)通過S3C2410的I/O口輸出高低電平來進行控制,同時用發(fā)光二極管指示家用電器工作狀況。發(fā)光二極管,表示家用電器通電,發(fā)光二極管滅,表示家用電器斷電。由于被控模塊家用電器大多使用220V交流電,屬于強電電路,所以使用繼電器控制家電。在芯片與繼電器中間加驅(qū)動電路。驅(qū)動電路可以利用光電耦合的通、斷去控制繼電器的開與關(guān)。也可以利用三極管的飽和與截止去控制繼電器的開與關(guān),這里采用三極管方式。當I/O口引腳輸出低電平時,三極管飽和導(dǎo)通。

5結(jié)論經(jīng)過充分的調(diào)查和對大量資料的研究,分析了智能家居的現(xiàn)狀和發(fā)展趨勢,并考慮到我國的經(jīng)濟發(fā)展和人們生活水平的不均衡等特點,利用GPRS移動通信網(wǎng)絡(luò),以及嵌入式技術(shù)結(jié)合藍牙無線通信技術(shù),安全可靠,性能穩(wěn)定的智能家居控制系統(tǒng)。同時本系統(tǒng)除用于家庭設(shè)備遠程自動控制外,還可用于家庭通信、家庭娛樂,共同組建智能家居控制系統(tǒng)。開發(fā)充分利用了j2me技術(shù)中所提供的API,以及高效的編程。不僅適應(yīng)了嵌入式系統(tǒng)的軟硬件資源受限的特點,而且使得程序的運行速度有所提高。目前該系統(tǒng)在模擬系統(tǒng)中正常運行,實現(xiàn)了目前市場上智能家居系統(tǒng)中最重要的組成部分——智能家居終端的大部分功能。在此基礎(chǔ)上,今后的研究工作將從以下方面進行深入:一方面是增加智能家居終端控制家電設(shè)備的種類,這需要對協(xié)議進行擴展;另一方面使用戶能夠通過更多途徑方案進行遠程控制,例如,手機短信控制也是一種方案;第三,考慮到嵌入式系統(tǒng)硬件資源受限,還需要就某些功能的實現(xiàn)代碼進行進一步優(yōu)化,例如,可通過考慮將多進程改為多線程來減少進程的創(chuàng)建和切換的開銷等。

附錄ControlCanvas類主要代碼如下所示:publicControlCanvas(FamilyListfl,Displaydisplay,intType,inti){ index=i; Fl=fl; this.Type=Type;//頁面樣式 this.display=display; Cmd_Back=newCommand("返回",Command.BACK,1); Cmd_Send=newCommand("發(fā)送",Command.OK,1); addCommand(Cmd_Back); addCommand(Cmd_Send); setCommandListener(this);//設(shè)置功能鍵偵聽器 setTitle(Fl.getItemString(index));//設(shè)置標題 try{ selectImage=Image.createImage("/select.png"); }catch(IOExceptione){ e.printStackTrace(); } }protectedvoidpaint(Graphicsg){ //畫背景圖片 if(Fl.getBackImage()!=null){ g.drawImage(Fl.getBackImage(),0,0,Graphics.TOP|Graphics.LEFT); } if(Type==ControlCanvasType_STYLE_ON_OFF){ //開關(guān)樣式 draw_On_Off_String(g,getWidth()/5,getHeight()/3); }elseif(Type==ControlCanvasType_STYLE_ROLL){ //滾動樣式 draw_roll_Style(g); }elseif(Type==ControlCanvasType_STYLE_DOUBLE_ROLL){ //雙滾動條樣式 draw_doubleroll_Style(g); } }FamilyList類中的主要代碼如下所示:publicFamilyList(Displaydisplay,Canvascv,Stringtitle,String[]items, ImagebackImage){ Title=title; setTitle(Title);//設(shè)置標題 setLastPage(cv); this.display=display; //音效 MidPlayermp=newMidPlayer(); mp.sound(); ITEMS=items; BackImage=backImage; Cmd_Back=newCommand("返回",Command.BACK,1); Cmd_OK=newCommand("設(shè)置",Command.OK,1); addCommand(Cmd_Back); addCommand(Cmd_OK); setCommandListener(this);//設(shè)置功能鍵偵聽器privatevoiddrawItems(Graphicsg){ //畫背景圖片 intpointX=40;//橫坐標固定點 intBaseY=40;//縱坐標固定基點 if(BackImage!=null){ g.drawImage(BackImage,0,0,Graphics.TOP|Graphics.LEFT); } for(inti=0;i<ITEMS.length;i++){ Fontfnt=Font.getDefaultFont(); if(i!=SeletedItem){ fnt=Font.getFont(Font.FACE_PROPORTIONAL,Font.STYLE_PLAIN, Font.SIZE_LARGE); g.setFont(fnt); g.setColor(0x0022AA); g.drawString(ITEMS[i],pointX,BaseY+i*30,Graphics.TOP |Graphics.LEFT); }else{ fnt=Font.getFont(Font.FACE_PROPORTIONAL,Font.STYLE_PLAIN |Font.STYLE_BOLD,Font.SIZE_LARGE); g.setFont(fnt); g.setColor(0xAA2200); g.drawString(ITEMS[i],pointX,BaseY+i*30,Graphics.TOP |Graphics.LEFT); g.drawRect(pointX-5,BaseY+i*30, ITEMS[i].length()*12+13,20);//畫選中框 }MainMID類中的代碼如下所示:privatevoidinitAlert(){ alert=newAlert("密碼錯誤","請輸入正確的密碼!",null,AlertType.ALARM); alert.addCommand(newCommand("退出",Command.CANCEL,2)); alert.addCommand(newCommand("返回",Command.BACK,1)); alert.setCommandListener(newCommandListener(){ publicvoidcommandAction(Commandc,Displayabled){ if(c.getLabel().equals("返回")){ dp.setCurrent(pwc); } if(c.getLabel().equals("退出")){ Close();//關(guān)閉程序 }MenuCanvas類中的主要代碼如下所示:protectedvoidpaint(Graphicsg){ intwidth=g.getClipWidth();//獲取Canvas寬度 intheigh=g.getClipHeight();//獲取Canvas高度 //填充背景 g.setColor(Color_Background); g.fillRect(0,0,width-1,heigh-1); g.drawImage(back,0,0,Graphics.TOP|Graphics.LEFT); g.setColor(Color_BackLine);g.drawRect(0,0,width-1,heigh-1); g.setColor(0xFFFFFF);Fontfnt=Font.getDefaultFont(); fnt=Font.getFont(Font.FACE_PROPORTIONAL,Font.STYLE_BOLD, Font.SIZE_LARGE); g.setFont(fnt); drawLoadingBar(g);//畫滾動條 drawMenus(g,width,heigh);privatevoiddrawMenus(Graphicsg,intwidth,intheigh){ if(isLoadingComplete){ int[]pos=setStringRectPosition(width,heigh); for(inti=0;i<SELECT_ITEM.length;i++){ Fontfnt=Font.getDefaultFont(); if(i==NOW_ITEM){ g.setFont(fnt); g.setColor(0xAA2200); g.drawString(SELECT_ITEM[i],pos[0]-1,pos[1]*(i+3), Graphics.TOP|Graphics.LEFT); }else{ g.setColor(0x0022AA); fnt=Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_PLAIN,Font.SIZE_LARGE); g.setFont(fnt); g.drawString(SELECT_ITEM[i],pos[0],pos[1]*(i+3), Graphics.TOP|Graphics.LEFT);MidPlayer類中的主要代碼如下所示:publicvoidsound(){ PlayermusicPlayer=null; try{ InputStreamis=getClass()

溫馨提示

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

最新文檔

評論

0/150

提交評論