基于linux-qt的智能家居系統(tǒng)設(shè)計

ID:12445530

大小:32.00 KB

頁數(shù):9頁

時間:2018-07-17

基于linux-qt的智能家居系統(tǒng)設(shè)計_第1頁
基于linux-qt的智能家居系統(tǒng)設(shè)計_第2頁
基于linux-qt的智能家居系統(tǒng)設(shè)計_第3頁
基于linux-qt的智能家居系統(tǒng)設(shè)計_第4頁
基于linux-qt的智能家居系統(tǒng)設(shè)計_第5頁
資源描述:

《基于linux-qt的智能家居系統(tǒng)設(shè)計》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、基于Linux/Qt的智能家居系統(tǒng)設(shè)計針對智能家居的特點及應(yīng)用背景,設(shè)計了一種家庭多功能控制系統(tǒng)。該系統(tǒng)采用飛思卡爾公司armCortexA8系列的i.MX51處理器作為MCU,在其上移植嵌入式Linux作為軟件開發(fā)平臺,并利用Qt相關(guān)技術(shù)為基礎(chǔ)設(shè)計友好的用戶界面,實現(xiàn)了arm板的各功能模塊與服務(wù)器端的交互。系統(tǒng)同時具備數(shù)字可視對講、信息收發(fā)、家電控制、安防報警、家庭娛樂等功能。1系統(tǒng)的架構(gòu)和功能家庭智能控制系統(tǒng)主要由室內(nèi)分機、單元門口機、小區(qū)圍墻機、管理中心終端機、管理中心服務(wù)器以及附件組成。系統(tǒng)采用分布式網(wǎng)絡(luò)

2、結(jié)構(gòu),可以根據(jù)住戶數(shù)量對系統(tǒng)的容量進行擴充。(1)室內(nèi)機是用戶在室內(nèi)進行操作的主要平臺,其功能組成為:可視對講、信息服務(wù)、家電控制、安防報警、家庭娛樂等??梢晫χv模塊主要實現(xiàn)雙向可視通話、視頻監(jiān)控、留言/留影、開鎖等功能;信息服務(wù)模塊主要用來收發(fā)物業(yè)信息和小區(qū)廣播,支持文本、圖片形式,并實現(xiàn)與可視對講模塊的影音共享;家電控制模塊包括對燈光、窗簾、空調(diào)、電梯等設(shè)施的無線控制,并預(yù)設(shè)了情境模式;安防報警模塊支持對煙感、門磁、煤氣泄漏檢測等的自動報警,并可通過GPRS/3G技術(shù)將報警信息傳送到用戶手機上;家庭娛樂模塊支

3、持常見格式的音視頻文件的播放(主要依靠硬件解碼)以及對常見格式的圖片的瀏覽(電子相框)。(2)單元門口機的主要功能是完成與所在單元樓的任意住戶以及管理中心機的可視通話,除了具備留言/留影功能外,還提供觸摸屏校準(zhǔn)、背光調(diào)節(jié)、密碼設(shè)置等功能。(3)圍墻機的基本功能和單元門口機類似,但可視對講、留言/留影功能是針對小區(qū)內(nèi)所有住戶的。(4)中心機是整個系統(tǒng)的神經(jīng)中樞,管理人員通過管理中心的控制設(shè)備管理各子系統(tǒng)的終端,其功能包括:可視對講、視頻監(jiān)控、查看報警信息、排除設(shè)備故障、信息服務(wù)、系統(tǒng)設(shè)置、遠程管理等。2系統(tǒng)的實現(xiàn)方

4、案2.1Qt的信號/槽機制Qt是一個跨平臺的C++應(yīng)用程序框架,完全面向?qū)ο?、易于擴展且允許真正的組件編程。Qt的C++類庫封裝了適應(yīng)不同操作系統(tǒng)的訪問細節(jié),這使得它能夠快速地部署于各種桌面與嵌入式系統(tǒng)中[1]。信號/槽機制是Qt的核心特性,這種機制真正實現(xiàn)了消息的封裝,完全可以取代原始的回調(diào)和消息機制。信號和槽的連接通過connect()函數(shù)完成,connect()函數(shù)是QObject類中的靜態(tài)函數(shù),其函數(shù)原型如下:BoolQObject::connect(constQObject*sender,constch

5、ar*signal,constQObject*receiver,constchar*member)其中,sender和receiver是指向QObject的指針,signal和slot是不帶有參數(shù)的函數(shù)名。2.2基于XML格式的Socket多線程通信Linux中的網(wǎng)絡(luò)編程主要通過Socket接口實現(xiàn),在Qt環(huán)境里,對Socket進行了封裝,并建立了相應(yīng)的QTcpSocket類來實現(xiàn)TCP客戶端和服務(wù)器的通信。QTcpSocket繼承了QIODevice,所以QTcpSocket可以使用QDataStream進行數(shù)

6、據(jù)的讀取和寫入。可擴展標(biāo)記語言XML(eXtensibleMarkupLanguage)是一種用于數(shù)據(jù)交換和數(shù)據(jù)存儲的多用途文本格式。對于XML格式的數(shù)據(jù),Qt中的QtXml模塊提供了DOM和SAX兩種處理方式。本文采用的DOM方式把XML文檔轉(zhuǎn)換成一個可以遍歷的樹形結(jié)構(gòu),這樣便可以隨意訪問其中的節(jié)點,因此要明顯簡潔得多。室內(nèi)機和中心機之間的通信采用多線程方式實現(xiàn)。多線程方式具有降低內(nèi)存、提高程序響應(yīng)速度等優(yōu)點,特別適用于嵌入系統(tǒng)。系統(tǒng)中建立了三個主線程:(1)GUI線程:用于執(zhí)行main()主函數(shù),響應(yīng)用戶的界

7、面操作;(2)tcpServer偵聽線程:用于對指定端口進行監(jiān)聽;(3)tcpSocket傳輸線程:負責(zé)消息的接收和回復(fù)。下面以用戶主動更新小區(qū)廣播為例詳細說明Socket通信的流程:(1)室內(nèi)機首先啟動一個線程,將用戶的更新請求結(jié)構(gòu)轉(zhuǎn)化成標(biāo)準(zhǔn)的XML格式(如果是新設(shè)備第一次開機,要先手動進行IP的設(shè)置),(2)調(diào)用connectToHost()函數(shù)請求與中心機建立連接,處于監(jiān)聽狀態(tài)的中心機接到請求后,就會分配一個Socket套接字來處理連接:首先根據(jù)解析出來的XML的Type節(jié)點判斷請求類型,如果是純文本則從數(shù)

8、據(jù)庫的Text表讀取,如果是圖片則從硬盤讀取,然后調(diào)用QIODevice::write()函數(shù)發(fā)送;(3)室內(nèi)機接到應(yīng)答信號readyRead()后就開始進行信息的收取,根據(jù)消息的Type節(jié)點類型分別寫入數(shù)據(jù)庫和硬盤。Socket多線程通信流程如圖1所示。2.3并行數(shù)據(jù)庫設(shè)計為了實現(xiàn)數(shù)據(jù)庫的并行操作,使GUI界面與數(shù)據(jù)庫相分離,從而讓界面能更快地響應(yīng)用戶的一般操作,同樣要

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。
关闭