董磊磊,陳新華
(山東科技大學(xué) 山東 青島 266590)
智能家居行業(yè)在近兩年得到了較快的發(fā)展,越來(lái)越多的智能住宅、智能小區(qū)應(yīng)運(yùn)而生,得到了眾多開(kāi)發(fā)商和消費(fèi)者的青睞。而隨著嵌入式技術(shù)的飛速發(fā)展,嵌入式也得到越來(lái)越廣泛的應(yīng)用,應(yīng)用設(shè)計(jì)很多領(lǐng)域,其中就涉及樓宇對(duì)講領(lǐng)域。樓宇對(duì)講系統(tǒng)是安防行業(yè)中直接保人民“安居樂(lè)業(yè)”的安全防衛(wèi)體系。近年來(lái),隨著高端別墅、公寓項(xiàng)目的大量推出,開(kāi)發(fā)商之間的競(jìng)爭(zhēng)越來(lái)越趨于白熱化,推向市場(chǎng)的樓盤(pán)開(kāi)始需要有好的賣點(diǎn)、性能、服務(wù)才能在市場(chǎng)競(jìng)爭(zhēng)中取得成功。隨著終端客戶對(duì)樓宇對(duì)講產(chǎn)品品質(zhì)、功能需求的不斷提升,智能家居產(chǎn)品集成系統(tǒng)相應(yīng)而生。
早期的家居智能只是相對(duì)獨(dú)立的可視對(duì)講、閉路監(jiān)控系統(tǒng)、停車場(chǎng)管理系統(tǒng)、三表抄送系統(tǒng)、背景音樂(lè)系統(tǒng)、電子巡更系統(tǒng)、門禁一卡通系統(tǒng)、物業(yè)管理系統(tǒng)、燈光控制、家電控制等,這些系統(tǒng)之間不能互聯(lián)互通,因此樓宇對(duì)講行業(yè)面臨一次全面的產(chǎn)品技術(shù)升級(jí),業(yè)內(nèi)把一些工業(yè)級(jí)技術(shù)應(yīng)用到民用樓宇對(duì)講行業(yè)中。本文討論的就是集可視對(duì)講、智能抄表、智能監(jiān)控、多媒體、家電控制等為一體的智能家居系統(tǒng)。
GUI是圖形用戶接口,一般用于PC機(jī)上人機(jī)交互界面的設(shè)計(jì)。而對(duì)于嵌入式GUI來(lái)說(shuō),由于嵌入式設(shè)備對(duì)資源的要求很嚴(yán)格,不同的嵌入式設(shè)備需要定制不同的嵌入式系統(tǒng),那么對(duì)GUI的要求也就不一樣,因此,對(duì)于不同的嵌入式系統(tǒng)來(lái)說(shuō)GUI也必須是可定制的。
主流 UI平臺(tái)有嵌入式 Qt、Windows CE、MiniGUI。 QT是諾基亞的開(kāi)源跨平臺(tái)開(kāi)發(fā)工具。主要用于高端symbian手機(jī)開(kāi)發(fā),MeeGo平板和MeeGo手機(jī)開(kāi)發(fā)。WindowsCE是微軟公司嵌入式、移動(dòng)計(jì)算平臺(tái)的基礎(chǔ),它是一個(gè)開(kāi)放的、可升級(jí)的32位嵌入式操作系統(tǒng),是基于掌上型電腦類的電子設(shè)備操作系統(tǒng),它是精簡(jiǎn)的Windows 95,Windows CE的圖形用戶界面相當(dāng)出色。MiniGUI也是一款國(guó)產(chǎn)的GUI系統(tǒng),主要用于低端嵌入式領(lǐng)域開(kāi)發(fā)。本文采用的Qt/Embedded也是分層體系結(jié)構(gòu),在功能提供方面采用C++類方式。
Qt/Embedded移植了大量的原來(lái)基于Qt的X-Windows程序,并提供了非常完整的嵌入式GUI解決方案,是一個(gè)成熟的GUI平臺(tái),具有如下特點(diǎn):
1)Qt遵循GPL協(xié)議,開(kāi)放主要的源代碼,用戶可以在GPL的規(guī)定下自由添加新特性。
2)Qt的信號(hào)/槽要比win32的回調(diào)機(jī)制舒服得多,看起來(lái)舒服,用起來(lái)也方便。
3)Qt為界面開(kāi)發(fā)提供了很多方便之處,從最開(kāi)始的QWidget,樣式表,QGraphicsView到現(xiàn)在的qml無(wú)一不為界面開(kāi)發(fā)提供了方便。
4)Qt一次編碼,多次編譯,可以達(dá)到跨平臺(tái)的目的。
5)Qt的提供的網(wǎng)絡(luò),多線程,容器類,字符串類相當(dāng)?shù)膹?qiáng)大,qt中也提供了對(duì)mvc架構(gòu)的支持,降低了UI和底層數(shù)據(jù)模塊的耦合性。
6)Qt提供了隱式共享,顯式共享等機(jī)制,QtWebKit模塊提供網(wǎng)頁(yè)瀏覽的一整套機(jī)制。
7)Qt對(duì)動(dòng)畫(huà)的支持,對(duì)多媒體文件的操作(音頻、視頻、圖片等),數(shù)據(jù)庫(kù)操作,對(duì)openVG/openGL的支持,對(duì)自定義動(dòng)態(tài)鏈接庫(kù)的支持,對(duì)不同字符編碼的支持等都很完備。除此之外,qt對(duì)標(biāo)準(zhǔn)c++里的容器類也提供了相應(yīng)的轉(zhuǎn)換接口。
8)Qt提供了一套自己的內(nèi)存管理機(jī)制。
基于Qt的這些特點(diǎn),在嵌入式樓宇對(duì)講系統(tǒng)的開(kāi)發(fā)過(guò)程中,文中采用了嵌入式Qt作為圖形用戶界面開(kāi)發(fā)的GUI支持平臺(tái)。
1)搭建開(kāi)發(fā)環(huán)境;
2)配置 Ltib;
3)配置 Kernel;
4)交叉編譯 Qt;
5)安裝Qt Creater交叉編譯環(huán)境;
6)目標(biāo)板Qt運(yùn)行。
系統(tǒng)輸入方式:4×4小鍵盤(pán),觸摸屏
界面大?。?00×600
功能鍵:管理中心機(jī)用16按鍵,梯口機(jī)、圍墻機(jī)用12按鍵,室內(nèi)機(jī)用4按鍵
視頻分辨率:D2,720×480
共有6款產(chǎn)品,包括室內(nèi)機(jī)、門口機(jī)(或稱門前確認(rèn)機(jī))、單元門口機(jī)、圍墻機(jī)、管理中心終端機(jī)、管理中心PC機(jī)。
產(chǎn)品與界面有關(guān)的功能包括:
1)可視對(duì)講:視頻通話、軟鍵盤(pán)、留言留影、開(kāi)鎖;
2)視頻監(jiān)控:室內(nèi)監(jiān)控、單元門監(jiān)控、小區(qū)門口監(jiān)控;
3)多媒體:音視頻播放、電子相冊(cè);
4)信息服務(wù):文字信息、留言信息、留影信息、輸入法;
5)工具箱:溫濕度計(jì)、萬(wàn)年歷、鬧鐘、計(jì)算器等;
6)系統(tǒng)設(shè)置:觸摸屏校準(zhǔn)、背光調(diào)節(jié)、音量/音效/配色等設(shè)置、屏保設(shè)置、免擾設(shè)置、系統(tǒng)壁紙?jiān)O(shè)置、電子相框播放間隔設(shè)置、TV-OUT輸出設(shè)置、IP地址設(shè)置等。
嵌入式樓宇對(duì)將系統(tǒng)GUI主界面如圖1所示。
圖1 嵌入式樓宇對(duì)將系統(tǒng)GUI主界面Fig.1 Embedded building system of main interface GUI
圖2 樓宇對(duì)講系統(tǒng)的軟件構(gòu)件Fig.2 Software component of building intercommunication telephone
嵌入式樓宇對(duì)講系統(tǒng)的整體軟件構(gòu)架如圖2所示。需要實(shí)時(shí)響應(yīng)的事件:視頻通話請(qǐng)求、網(wǎng)絡(luò)廣播消息信息傳輸請(qǐng)求、視頻監(jiān)控請(qǐng)求。
控制請(qǐng)求:開(kāi)鎖(本地和網(wǎng)絡(luò))、低溫加熱、門磁、煙感、煤氣泄漏的檢測(cè)、遠(yuǎn)程家電控制、RFID、IC開(kāi)門、鍵盤(pán)、光敏電阻感光啟動(dòng)鍵盤(pán)、攝像頭背光。
其他:溫度、濕度。為每一個(gè)需要實(shí)時(shí)訪問(wèn)的底層接口建立一個(gè)線程和事件處理類,通過(guò)自定義事件,在事件處理對(duì)象中將事件發(fā)給當(dāng)前GUI窗口或進(jìn)行其他處理,需要進(jìn)行底層事件處理的窗口類實(shí)現(xiàn)自定義事件處理函數(shù)customevent。如,對(duì)底層溫濕度計(jì)進(jìn)行實(shí)時(shí)訪問(wèn),將得到的數(shù)據(jù)保存在自定義事件類中,通過(guò)事件處理類將自定義事件對(duì)象發(fā)送到當(dāng)前窗口,當(dāng)前窗口取出數(shù)據(jù)并顯示在窗口上。
開(kāi)機(jī)后需要運(yùn)行的程序:1)GUI主進(jìn)程;2)配置文件讀取或建立,根據(jù)配置文件設(shè)置系統(tǒng)參數(shù),把需要常駐內(nèi)存的參數(shù)用一個(gè)類包含,生成全局對(duì)象,供所有模塊讀取。其他參數(shù)由需要的模塊臨時(shí)讀取此類包含:壁紙文件路徑、背光延時(shí)按鍵音 按鍵音音量、信息提示音
信息提示音音量、鈴聲、鈴聲類型、鈴聲音量、免擾設(shè)置、電子相框默認(rèn)播放文件夾、電子相框播放間隔、TV輸出設(shè)置-輸出制式。完成好的樓宇對(duì)講的主界面如圖3所示。
圖3 樓宇對(duì)講的主界面Fig.3 Building interphone Lord interface
嵌入式Linux是目前流行的嵌入式系統(tǒng)解決方案,而嵌入式GUI是嵌入式Linux不可缺少的組成部分。本文通過(guò)分析、比較目前流行的幾種嵌入式GUI,選擇了嵌入式Qt作為研究對(duì)象并對(duì)其進(jìn)行了深入討論。在此礎(chǔ)上完成了基于嵌入式Qt的樓宇對(duì)講系統(tǒng)GUI平臺(tái)的設(shè)計(jì)和實(shí)現(xiàn),文章還對(duì)嵌入式Linux的移植做了論述,對(duì)系統(tǒng)的軟件構(gòu)架進(jìn)行了描述,最后還給出了所做項(xiàng)目GUI的截圖,具有較高的經(jīng)濟(jì)價(jià)值,并可為其他嵌入系統(tǒng)設(shè)計(jì)提供價(jià)值。
[1]譚磊.基于嵌入式Linux的智能移動(dòng)終端的軟件研究與設(shè)計(jì)[D].合肥:中國(guó)科學(xué)技術(shù)大學(xué),2005.
[2]羅琦.面向?qū)ο笄度胧蕉嗳蝿?wù)GUI的設(shè)計(jì)和實(shí)現(xiàn)[D].成都:電子科技大學(xué),2003.
[3]吳峰,王自強(qiáng).基于FrameBuffer的嵌入式GUI系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用與軟件,2005,22(3):128-130.WU Feng.WANG Zi-qiang,Based on embedded system design of the FrameBuffer GUI[J].Computer Applications and Software,2005,22(3):128-130.
[4]閔華松,童學(xué)才.基于Linux的嵌入式GUI設(shè)計(jì)研究[J].微計(jì)算機(jī)信息,2007,23:79-81.MIN Hua-song,TONG Xue-cai.Based on Linux embedded GUI design research[J].Control and Automation,2007,28:79-81.
[5]彭均鍵,史步海,劉洋.基于Qt的嵌入式GUI開(kāi)發(fā)平臺(tái)的搭建[J].微型電腦應(yīng)用,2010(2):40-42.PENG Yun-jian, SHI Bu-hai.LIU Yang, Based on the Qt embedded GUI development platform [J].Microcomputer Applications,2010(2):40-42.
[6]楊中華,李兵.基于Qt/Embedded的GUI應(yīng)用程序的實(shí)現(xiàn)[J].電腦開(kāi)發(fā)與應(yīng)用, 2008(5):115-117.YANG Zhong-hua, LI Bing, Based on the Qt/Embedded GUI application realization [J].Computer Development&Applications,2008(5):115-117.
[7]魏永明.Linux設(shè)備驅(qū)動(dòng)程序[M].3版.北京:中國(guó)電力出版社,2005.
[8]陳健,宋健健.Linux 程序設(shè)計(jì)[M].3版.北京:人民郵電出版社,2007.