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