董磊磊,陳新華
(山東科技大學 山東 青島 266590)
智能家居行業在近兩年得到了較快的發展,越來越多的智能住宅、智能小區應運而生,得到了眾多開發商和消費者的青睞。而隨著嵌入式技術的飛速發展,嵌入式也得到越來越廣泛的應用,應用設計很多領域,其中就涉及樓宇對講領域。樓宇對講系統是安防行業中直接保人民“安居樂業”的安全防衛體系。近年來,隨著高端別墅、公寓項目的大量推出,開發商之間的競爭越來越趨于白熱化,推向市場的樓盤開始需要有好的賣點、性能、服務才能在市場競爭中取得成功。隨著終端客戶對樓宇對講產品品質、功能需求的不斷提升,智能家居產品集成系統相應而生。
早期的家居智能只是相對獨立的可視對講、閉路監控系統、停車場管理系統、三表抄送系統、背景音樂系統、電子巡更系統、門禁一卡通系統、物業管理系統、燈光控制、家電控制等,這些系統之間不能互聯互通,因此樓宇對講行業面臨一次全面的產品技術升級,業內把一些工業級技術應用到民用樓宇對講行業中。本文討論的就是集可視對講、智能抄表、智能監控、多媒體、家電控制等為一體的智能家居系統。
GUI是圖形用戶接口,一般用于PC機上人機交互界面的設計。而對于嵌入式GUI來說,由于嵌入式設備對資源的要求很嚴格,不同的嵌入式設備需要定制不同的嵌入式系統,那么對GUI的要求也就不一樣,因此,對于不同的嵌入式系統來說GUI也必須是可定制的。
主流 UI平臺有嵌入式 Qt、Windows CE、MiniGUI。 QT是諾基亞的開源跨平臺開發工具。主要用于高端symbian手機開發,MeeGo平板和MeeGo手機開發。WindowsCE是微軟公司嵌入式、移動計算平臺的基礎,它是一個開放的、可升級的32位嵌入式操作系統,是基于掌上型電腦類的電子設備操作系統,它是精簡的Windows 95,Windows CE的圖形用戶界面相當出色。MiniGUI也是一款國產的GUI系統,主要用于低端嵌入式領域開發。本文采用的Qt/Embedded也是分層體系結構,在功能提供方面采用C++類方式。
Qt/Embedded移植了大量的原來基于Qt的X-Windows程序,并提供了非常完整的嵌入式GUI解決方案,是一個成熟的GUI平臺,具有如下特點:
1)Qt遵循GPL協議,開放主要的源代碼,用戶可以在GPL的規定下自由添加新特性。
2)Qt的信號/槽要比win32的回調機制舒服得多,看起來舒服,用起來也方便。
3)Qt為界面開發提供了很多方便之處,從最開始的QWidget,樣式表,QGraphicsView到現在的qml無一不為界面開發提供了方便。
4)Qt一次編碼,多次編譯,可以達到跨平臺的目的。
5)Qt的提供的網絡,多線程,容器類,字符串類相當的強大,qt中也提供了對mvc架構的支持,降低了UI和底層數據模塊的耦合性。
6)Qt提供了隱式共享,顯式共享等機制,QtWebKit模塊提供網頁瀏覽的一整套機制。
7)Qt對動畫的支持,對多媒體文件的操作(音頻、視頻、圖片等),數據庫操作,對openVG/openGL的支持,對自定義動態鏈接庫的支持,對不同字符編碼的支持等都很完備。除此之外,qt對標準c++里的容器類也提供了相應的轉換接口。
8)Qt提供了一套自己的內存管理機制。
基于Qt的這些特點,在嵌入式樓宇對講系統的開發過程中,文中采用了嵌入式Qt作為圖形用戶界面開發的GUI支持平臺。
1)搭建開發環境;
2)配置 Ltib;
3)配置 Kernel;
4)交叉編譯 Qt;
5)安裝Qt Creater交叉編譯環境;
6)目標板Qt運行。
系統輸入方式:4×4小鍵盤,觸摸屏
界面大小:800×600
功能鍵:管理中心機用16按鍵,梯口機、圍墻機用12按鍵,室內機用4按鍵
視頻分辨率:D2,720×480
共有6款產品,包括室內機、門口機(或稱門前確認機)、單元門口機、圍墻機、管理中心終端機、管理中心PC機。
產品與界面有關的功能包括:
1)可視對講:視頻通話、軟鍵盤、留言留影、開鎖;
2)視頻監控:室內監控、單元門監控、小區門口監控;
3)多媒體:音視頻播放、電子相冊;
4)信息服務:文字信息、留言信息、留影信息、輸入法;
5)工具箱:溫濕度計、萬年歷、鬧鐘、計算器等;
6)系統設置:觸摸屏校準、背光調節、音量/音效/配色等設置、屏保設置、免擾設置、系統壁紙設置、電子相框播放間隔設置、TV-OUT輸出設置、IP地址設置等。
嵌入式樓宇對將系統GUI主界面如圖1所示。

圖1 嵌入式樓宇對將系統GUI主界面Fig.1 Embedded building system of main interface GUI

圖2 樓宇對講系統的軟件構件Fig.2 Software component of building intercommunication telephone
嵌入式樓宇對講系統的整體軟件構架如圖2所示。需要實時響應的事件:視頻通話請求、網絡廣播消息信息傳輸請求、視頻監控請求。
控制請求:開鎖(本地和網絡)、低溫加熱、門磁、煙感、煤氣泄漏的檢測、遠程家電控制、RFID、IC開門、鍵盤、光敏電阻感光啟動鍵盤、攝像頭背光。
其他:溫度、濕度。為每一個需要實時訪問的底層接口建立一個線程和事件處理類,通過自定義事件,在事件處理對象中將事件發給當前GUI窗口或進行其他處理,需要進行底層事件處理的窗口類實現自定義事件處理函數customevent。如,對底層溫濕度計進行實時訪問,將得到的數據保存在自定義事件類中,通過事件處理類將自定義事件對象發送到當前窗口,當前窗口取出數據并顯示在窗口上。
開機后需要運行的程序:1)GUI主進程;2)配置文件讀取或建立,根據配置文件設置系統參數,把需要常駐內存的參數用一個類包含,生成全局對象,供所有模塊讀取。其他參數由需要的模塊臨時讀取此類包含:壁紙文件路徑、背光延時按鍵音 按鍵音音量、信息提示音
信息提示音音量、鈴聲、鈴聲類型、鈴聲音量、免擾設置、電子相框默認播放文件夾、電子相框播放間隔、TV輸出設置-輸出制式。完成好的樓宇對講的主界面如圖3所示。

圖3 樓宇對講的主界面Fig.3 Building interphone Lord interface
嵌入式Linux是目前流行的嵌入式系統解決方案,而嵌入式GUI是嵌入式Linux不可缺少的組成部分。本文通過分析、比較目前流行的幾種嵌入式GUI,選擇了嵌入式Qt作為研究對象并對其進行了深入討論。在此礎上完成了基于嵌入式Qt的樓宇對講系統GUI平臺的設計和實現,文章還對嵌入式Linux的移植做了論述,對系統的軟件構架進行了描述,最后還給出了所做項目GUI的截圖,具有較高的經濟價值,并可為其他嵌入系統設計提供價值。
[1]譚磊.基于嵌入式Linux的智能移動終端的軟件研究與設計[D].合肥:中國科學技術大學,2005.
[2]羅琦.面向對象嵌入式多任務GUI的設計和實現[D].成都:電子科技大學,2003.
[3]吳峰,王自強.基于FrameBuffer的嵌入式GUI系統設計[J].計算機應用與軟件,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]閔華松,童學才.基于Linux的嵌入式GUI設計研究[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開發平臺的搭建[J].微型電腦應用,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應用程序的實現[J].電腦開發與應用, 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設備驅動程序[M].3版.北京:中國電力出版社,2005.
[8]陳健,宋健健.Linux 程序設計[M].3版.北京:人民郵電出版社,2007.