亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Qt的糧情測(cè)控系統(tǒng)GUI設(shè)計(jì)

        2010-03-26 01:47:44楊鐵軍李旭東
        電子設(shè)計(jì)工程 2010年11期
        關(guān)鍵詞:糧情觸摸屏測(cè)控

        楊鐵軍,李旭東

        (河南工業(yè)大學(xué) 信息科學(xué)與工程學(xué)院,河南 鄭州 450001)

        糧情測(cè)控系統(tǒng)利用現(xiàn)代計(jì)算機(jī)技術(shù)實(shí)時(shí)檢測(cè)糧食儲(chǔ)藏過程中影響糧情變化的因素,并對(duì)實(shí)時(shí)檢測(cè)的數(shù)據(jù)進(jìn)行分析判斷,對(duì)安全儲(chǔ)糧提出處理建議,從而進(jìn)行控制。目前,糧情測(cè)控大部分都是在監(jiān)控中心,不便于糧庫(kù)管理員現(xiàn)場(chǎng)了解糧庫(kù)和設(shè)備信息。傳統(tǒng)的糧情測(cè)控終端負(fù)責(zé)采集端點(diǎn)的溫度信息并傳遞給監(jiān)控中心,本身并沒有控制和顯示功能。為了方便人們?cè)诂F(xiàn)場(chǎng)對(duì)糧倉(cāng)環(huán)境進(jìn)行監(jiān)控,及時(shí)調(diào)整各項(xiàng)設(shè)備的運(yùn)轉(zhuǎn)參數(shù),設(shè)計(jì)了一個(gè)具有圖形化人機(jī)接口界面(GUI)的糧情測(cè)控終端,GUI部分采用Qt進(jìn)行設(shè)計(jì),具有簡(jiǎn)單、可靠、直觀等特點(diǎn),配合觸摸屏操作可獲得良好的互動(dòng)效果。

        1 開發(fā)背景

        1.1 系統(tǒng)組成結(jié)構(gòu)

        整個(gè)糧情測(cè)控系統(tǒng)由3部分組成:端點(diǎn)傳感器、測(cè)控終端和監(jiān)控中心。監(jiān)控中心由普通計(jì)算機(jī)組成,用于統(tǒng)籌整個(gè)糧庫(kù)的各項(xiàng)指標(biāo)并分析顯示;測(cè)控終端用于采集端點(diǎn)傳來(lái)的數(shù)據(jù)并實(shí)時(shí)顯示;端點(diǎn)設(shè)備由18B20、hs1101和AVR單片機(jī)等組成。整個(gè)系統(tǒng)結(jié)構(gòu)如圖1所示。

        圖1 糧情測(cè)控系統(tǒng)組成結(jié)構(gòu)Fig.1 Composition block diagram of grain monitoring and control system

        本次開發(fā)的GUI程序是整個(gè)糧情測(cè)控系統(tǒng)中的測(cè)控終端部分。根據(jù)糧情測(cè)控系統(tǒng)的要求,本文實(shí)現(xiàn)了一個(gè)具有圖形接口界面的測(cè)控終端,它采用Qtopia圖形界面,具有界面美觀、交互性強(qiáng)等特點(diǎn)。

        1.2 硬件平臺(tái)

        硬件平臺(tái)采用Samsung公司的S3C2440A微處理器,它是基于ARM920T的RISC型 CPU,是一款性價(jià)比較高的嵌入式32位處理器,最高主頻可達(dá)533 MHz[1],內(nèi)置16 KB指令緩存和16 KB數(shù)據(jù)緩存,4通道通用DMA,能夠與常用的外圍設(shè)備實(shí)現(xiàn)無(wú)縫連接,從而簡(jiǎn)化了外圍電路設(shè)計(jì),降低了產(chǎn)品成本、體積和功耗。存儲(chǔ)模塊采用Nand Flash大小為128 MB用于存放B00TLOADER代碼、Linux內(nèi)核映像、文件系統(tǒng)以及Qtopia等應(yīng)用程序,SDRAM采用兩片外接32 MB總共64 MB的HY57V561620FTP型內(nèi)存器件,它們并接在一起形成32位總線數(shù)據(jù)寬度,增加了系統(tǒng)反應(yīng)速度。LCD采用分辨率為800×480的7寸觸摸屏,可以獲得最佳舒適度。S3C2440本身總共有3個(gè)串口UART0~UART2,其中UART0,UART1可組合為一個(gè)全功能的串口,主要用于與端點(diǎn)設(shè)備通信。其硬件邏輯結(jié)構(gòu)如圖2所示。

        圖2 硬件邏輯結(jié)構(gòu)Fig.2 Hardware logic structure

        1.3 軟件結(jié)構(gòu)

        軟件平臺(tái)采用Linux操作系統(tǒng),內(nèi)核版本2.6.29,圖形界面采用Qtopia2.2與最新的Qt4相比,其體積更小更適合嵌入式系統(tǒng)開發(fā)。終端系統(tǒng)組成結(jié)構(gòu)如圖3所示。

        圖3 終端系統(tǒng)組成結(jié)構(gòu)Fig.3 Terminal system composition

        本文的QT/Embedded人機(jī)界面的開發(fā)主要分為:底層驅(qū)動(dòng)開發(fā)、配置開發(fā)環(huán)境和GUI應(yīng)用程序的設(shè)計(jì)與實(shí)現(xiàn)等3部分。其中底層驅(qū)動(dòng)開發(fā)包括幀緩沖的啟動(dòng)和設(shè)備驅(qū)動(dòng)開發(fā)2部分。

        2 LCD底層驅(qū)動(dòng)開發(fā)

        2.1 幀緩沖的啟動(dòng)

        Qt/Embedded的底層圖形引擎基于FrameBuffer(幀緩沖)技術(shù)[2],簡(jiǎn)稱為fbdrv,它是一種獨(dú)立于硬件的抽象圖形設(shè)備。目前的2.6內(nèi)核的Linux都包含了對(duì)FrameBuffer技術(shù)的支持,但默認(rèn)情況下并不開啟,修改grub引導(dǎo)文件,在“kernel”后加入vga=0x0318參數(shù)即可成功啟動(dòng)。

        2.2 設(shè)備驅(qū)動(dòng)開發(fā)[3]

        S3C2440的觸摸屏接口是與A/D轉(zhuǎn)換器接口結(jié)合在一起的,由它產(chǎn)生中斷控制觸摸屏的輸入。輸入事件由事件處理器(event handler)進(jìn)行處理,其驅(qū)動(dòng)注冊(cè)代碼如下:

        static struct input_handler evdev_handler={

        .event=evdev_event,

        .connect=evdev_connect,

        .disconnect=evdev_disconnect,

        .fops=&evdev_fops,

        .minor=EVDEV_MINOR_BASE,

        .name= “evdev”,

        .id_table=evdev_ids,

        };

        將設(shè)備的驅(qū)動(dòng)模塊加載到嵌入式Linux內(nèi)核后,應(yīng)用程序就可以通過對(duì)設(shè)備文件的讀寫,實(shí)現(xiàn)對(duì)設(shè)備的操作。

        本系統(tǒng)采取了觸摸屏代替?zhèn)鹘y(tǒng)的鼠標(biāo)加顯示屏的操作方式,而觸摸屏并不在Qt的默認(rèn)支持范圍,所以需要自行開發(fā)觸摸屏驅(qū)動(dòng)以實(shí)現(xiàn)Qt對(duì)觸摸屏的支持,觸摸屏的實(shí)現(xiàn)流程,如圖4所示。

        圖4 觸摸屏開發(fā)流程Fig.4 Flow chart of touch screen

        3 Qt/Embedded開發(fā)平臺(tái)建立

        3.1 開發(fā)環(huán)境

        Qtopia是基于Qt/Embedded開發(fā)的一個(gè)嵌入式的窗口系統(tǒng)和應(yīng)用程序集,如地址本、圖像瀏覽、Media播放器等,還包括娛樂和配置工具,廣泛用于PDA等掌上設(shè)備。Qtopia平臺(tái)由 Qtopia 庫(kù)(Qt/E,qtopiapim,libqpe,libqtopia1) 和 Qtopia server/laucher組成。

        Qt按照應(yīng)用環(huán)境的不同,分為X-Windows的X11版本與嵌入式環(huán)境的版本Qt/E。其層次結(jié)構(gòu)如圖5所示。

        Qt/E 通過 API與操作輸入/輸出(Input/Output,I/O)設(shè)施直接交互,它作為嵌入式GUI的實(shí)現(xiàn)工具,支持幀緩沖驅(qū)動(dòng),能在沒有X-Server或X-Lib支持的條件下直接寫幀緩沖,節(jié)省了內(nèi)存,提高了程序的運(yùn)行效率[4-5]。因此,鑒于Qt/E在跨平臺(tái)、內(nèi)存占用和快速性等方面的優(yōu)勢(shì),將其作為面向糧庫(kù)信息監(jiān)測(cè)的嵌入式輕型GUI構(gòu)件庫(kù)的基礎(chǔ)構(gòu)建工具。

        圖5 Qtopia的軟件層次結(jié)構(gòu)Fig.5 Hierarchy of qtopia software

        3.2 建立Linux交叉編譯環(huán)境

        嵌入式開發(fā)模式通常采用宿主機(jī)/目標(biāo)機(jī)的形式,先在本機(jī)X11環(huán)境下模擬嵌入式目標(biāo)平臺(tái)并完成程序的編寫與調(diào)試,再通過交叉編譯生成目標(biāo)機(jī)可執(zhí)行代碼。整體搭建流程如圖6所示。

        圖6 開發(fā)環(huán)境搭建流程Fig.6 Building flow chart of developing environment

        開發(fā)Qt/Embedded程序需要建立Linux交叉編譯環(huán)境。首先在宿主機(jī)(PC機(jī))完全安裝Fedora9 Linux系統(tǒng)(內(nèi)核版本2.6.29)。然后編譯安裝ARM-Linux交叉編譯器[6],最后編輯/root/.bashrc文件,添加 “export PATH=$PATH:/usr/local/arm/4.3.2/bin”設(shè)置環(huán)境變量即可成功建立交叉編譯環(huán)境。

        3.3 建立Qtopia開發(fā)環(huán)境

        整個(gè)GUI系統(tǒng)的構(gòu)建需要對(duì) Qt/Embedded、Qtopia依次分別編譯鏈接,然后有機(jī)地整合在一起。Qt/Embedded為Qtopia提供了底層支持,GUI系統(tǒng)的圖形庫(kù)窗口組建都由Qt/Embedded實(shí)現(xiàn)。建立Qtopia開發(fā)環(huán)境用到如下3個(gè)文件:

        Trmake 1.14.tar.gz(用于生成Qt工程的Makefile文件),Qt-embedded-2.3.7.tar.gz(Qte基礎(chǔ)類庫(kù)的源碼包主要提供lqte的庫(kù))和 Qt-x11-2.3.2.tar.gz(PC 桌面的 Qt源碼包)。

        分別建立2套開發(fā)環(huán)境,在/opt/arm2440/下建立x86-qtopia目錄用于建立Qt/X11虛擬環(huán)境,建立arm-qtopia目錄用于建立Qt/E交叉編譯環(huán)境。2套開發(fā)環(huán)境的建立用到的軟件包是一樣的,只是使用的編譯器和編譯參數(shù)不一樣,分別把上述3個(gè)文件依次解壓到x86-qtopia和arm-qtopia 2個(gè)目錄,然后分別進(jìn)行編譯、配置。

        4 糧情測(cè)控系統(tǒng)GUI設(shè)計(jì)與實(shí)現(xiàn)

        4.1 GUI設(shè)計(jì)

        根據(jù)糧情測(cè)控系統(tǒng)的現(xiàn)場(chǎng)功能要求GUI應(yīng)主要包含如下4部分:1)糧倉(cāng)環(huán)境信息的實(shí)時(shí)顯示,主要是糧倉(cāng)內(nèi)部環(huán)境的溫度、濕度狀況。2)糧倉(cāng)控制設(shè)備的開關(guān)狀態(tài)顯示,如風(fēng)機(jī)開關(guān)、天窗開關(guān)等。3)Web服務(wù)器控制按鈕,用來(lái)開啟和關(guān)閉Web服務(wù)。4)調(diào)試窗口,方便現(xiàn)場(chǎng)人員對(duì)設(shè)備參數(shù)進(jìn)行調(diào)試修復(fù)。

        Qt擁有眾多的窗口控件,如按鈕、表單、滾動(dòng)條和程序窗口等,它們組合起來(lái)可以創(chuàng)建各種用戶界面。其中QWidget是所有用戶界面對(duì)象的基類,其它窗口部件都是繼承QWidget或其子類[7]。

        創(chuàng)建程序主窗口先要在main.cpp函數(shù)中創(chuàng)建QApplication類型的對(duì)象。其代碼如下:QApplication app(argc, argv);

        本程序使用QWidget類創(chuàng)建用戶類[8],并使用戶類通過公有繼承派生于Qwidget類,代碼如下:TableForm::TableForm(QWidget*parent,const char*name, WFlags fl):QWidget(parent, name, fl)

        GUI程序的圖形控件通過Qt帶的Designer工具進(jìn)行創(chuàng)建,能獲得良好的視覺效果。

        糧倉(cāng)的溫控信息通過QTable類進(jìn)行顯示,QCheckBox類負(fù)責(zé)設(shè)備狀態(tài)控制,QPushButton類可與信號(hào)槽連接實(shí)現(xiàn)額外功能,代碼如下:connect(ReadButton, SIGNAL(clicked()),this, SLOT(readinfo());

        4.2 GUI漢化

        為使糧情測(cè)控系統(tǒng)的人機(jī)界面支持中文風(fēng)格,方便糧庫(kù)管理員的操作,需要對(duì)程序進(jìn)行語(yǔ)言轉(zhuǎn)化處理,采用Qt/Embedded開發(fā)的嵌入式糧情測(cè)控系統(tǒng)的人機(jī)界面需要采取以下步驟,以實(shí)現(xiàn)對(duì)中文的支持:

        1)在main.cpp文件中添加頭文件qtextcodec.h;

        2)在 QApplication app (argc,argv)后添加“app.setDefault-Codec(QTextCodec::codecForName(“UTF-8”))”

        3)設(shè)置相應(yīng)的中文字體,GUI程序即可實(shí)現(xiàn)中文顯示。

        4.3 編譯并移植程序

        在系統(tǒng)終端下,執(zhí)行 “qmake-o Makefile-spec/opt/arm2440/x86-qtopia/qtopia/tmake/lib/qws/linux-generic-g++*.pro”命令,生成針對(duì)于工程文件的Makefile文件,執(zhí)行make就可以生成x86的可執(zhí)行文件。

        對(duì)Makefile進(jìn)行修改,主要是將編譯器gcc改為交叉編譯工具arm-linux-g++,編譯生成ARM平臺(tái)目標(biāo)代碼即可在目標(biāo)平臺(tái)上成功運(yùn)行。運(yùn)行結(jié)果如圖7所示。

        圖7 GUI漢化界面Fig.7 GUI localization interface

        5 結(jié)束語(yǔ)

        一個(gè)友好的圖形用戶界面對(duì)整個(gè)系統(tǒng)的推廣有著重要意義。在糧情測(cè)控系統(tǒng)的現(xiàn)場(chǎng)應(yīng)用中,該系統(tǒng)運(yùn)行穩(wěn)定,實(shí)現(xiàn)了對(duì)各個(gè)糧倉(cāng)信息實(shí)時(shí)檢測(cè)與控制,配合計(jì)算機(jī)的監(jiān)控中心形成立體化監(jiān)控網(wǎng)絡(luò),為國(guó)家實(shí)現(xiàn)科學(xué)保糧奠定了基礎(chǔ)。

        [1] Samsung Electronics Co.Ltd.User's manual S3C2440x[Z].2001.

        [2] Linux,Linux frame buffer driver developer[EB/OL].(2009)[2010-03-25].http://www.linux-fbdev.org/.

        [3] Jonathan Corbet,Alessandro Rubini,Greg Kroah Hartman.Linux device drivers[M].3 ed.O'Reilly,Inc,2005.

        [4] AHN S H,SUL D M,CHOI SC,et al.Implementation of lightweight graphic library builder for embedded system[C]//Proceedings of the 8th International Conference on Advanced Communication Technology, IEEE,2006,(1):1662-168.

        [5] HohlF Time limited blackbox security:protecting mobile agents from malicious hosts[J].Lecture Notes in Computer Science,1998,1419:92-113.

        [6] Linux.TheARMLinuxproject[EB/OL]. (2004-11-05) [2010-04-07].http://www.arm.linux.org.uk/.

        [7] Jasmin Blanchette,Mark Summerfield.C++GU I Programming with Qt3[M].2004.

        [8] 倪繼利.Qt及Linux操作系統(tǒng)窗口設(shè)計(jì)[M].北京:電子工業(yè)出版社,2006.

        [9] Trolltech.Qtopia Reference Documentation [EB/OL].(2005)[2008-09-25].http://doc.trolltech.com.

        猜你喜歡
        糧情觸摸屏測(cè)控
        PLC和觸摸屏在衛(wèi)生間控制系統(tǒng)的應(yīng)用
        糧庫(kù)糧情智能監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
        立足贛州糧情實(shí)際 確保區(qū)域糧食安全
        《測(cè)控電路》實(shí)踐教學(xué)改革探討
        皮膚“長(zhǎng)”出觸摸屏
        CGSR-GDCSIV型糧情測(cè)控系統(tǒng)通過中國(guó)糧油學(xué)會(huì)組織的科技成果評(píng)價(jià)
        基于現(xiàn)代測(cè)控技術(shù)及其應(yīng)用分析
        糧情監(jiān)測(cè)技術(shù)的現(xiàn)狀與展望
        向著新航程進(jìn)發(fā)——遠(yuǎn)望7號(hào)測(cè)控船首航記錄
        太空探索(2016年12期)2016-07-18 11:13:43
        基于USB2.0協(xié)議的通用測(cè)控通信接口設(shè)計(jì)
        尤物视频在线观看| 国产一区二区三区精品毛片| av成人一区二区三区| 欧美多人片高潮野外做片黑人 | 日本精品视频免费观看| 激情综合色综合啪啪五月丁香| 91精品手机国产在线能| 国产天堂av手机在线| 久久国产在线精品观看| 亚洲综合av一区二区三区| 大地资源中文第三页| 一区二区丝袜美腿视频| 好看的日韩精品视频在线| 国产伦精品一区二区三区妓女| 精品性影院一区二区三区内射| 加勒比精品一区二区三区| 久久精品中文字幕有码| 色综合久久精品亚洲国产| 在线播放a欧美专区一区| 亚洲老女人区一区二视频| 国产香蕉一区二区三区在线视频| 四虎影视免费永久在线观看| 亚洲AV永久无码精品导航| 久久精品一区二区三区夜夜| 久久亚洲av成人无码国产最大| 国产伦精品一区二区三区免费| 骚片av蜜桃精品一区| 亚洲人成精品久久熟女| 男女性杂交内射妇女bbwxz| 猫咪www免费人成网最新网站| 一区二区久久精品66国产精品| 中文乱码字幕精品高清国产 | 午夜一区二区三区观看| 羞羞视频在线观看| 色综合久久久久综合999| 久久精品国产自产对白一区| 成人精品天堂一区二区三区| 国产人成午夜免电影观看| 色婷婷亚洲一区二区在线| 99re6在线视频精品免费| 成人性生交片无码免费看|