999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Qt的糧情測控系統GUI設計

2010-03-26 01:47:44楊鐵軍李旭東
電子設計工程 2010年11期
關鍵詞:嵌入式程序環境

楊鐵軍,李旭東

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

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

1 開發背景

1.1 系統組成結構

整個糧情測控系統由3部分組成:端點傳感器、測控終端和監控中心。監控中心由普通計算機組成,用于統籌整個糧庫的各項指標并分析顯示;測控終端用于采集端點傳來的數據并實時顯示;端點設備由18B20、hs1101和AVR單片機等組成。整個系統結構如圖1所示。

圖1 糧情測控系統組成結構Fig.1 Composition block diagram of grain monitoring and control system

本次開發的GUI程序是整個糧情測控系統中的測控終端部分。根據糧情測控系統的要求,本文實現了一個具有圖形接口界面的測控終端,它采用Qtopia圖形界面,具有界面美觀、交互性強等特點。

1.2 硬件平臺

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

圖2 硬件邏輯結構Fig.2 Hardware logic structure

1.3 軟件結構

軟件平臺采用Linux操作系統,內核版本2.6.29,圖形界面采用Qtopia2.2與最新的Qt4相比,其體積更小更適合嵌入式系統開發。終端系統組成結構如圖3所示。

圖3 終端系統組成結構Fig.3 Terminal system composition

本文的QT/Embedded人機界面的開發主要分為:底層驅動開發、配置開發環境和GUI應用程序的設計與實現等3部分。其中底層驅動開發包括幀緩沖的啟動和設備驅動開發2部分。

2 LCD底層驅動開發

2.1 幀緩沖的啟動

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

2.2 設備驅動開發[3]

S3C2440的觸摸屏接口是與A/D轉換器接口結合在一起的,由它產生中斷控制觸摸屏的輸入。輸入事件由事件處理器(event handler)進行處理,其驅動注冊代碼如下:

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,

};

將設備的驅動模塊加載到嵌入式Linux內核后,應用程序就可以通過對設備文件的讀寫,實現對設備的操作。

本系統采取了觸摸屏代替傳統的鼠標加顯示屏的操作方式,而觸摸屏并不在Qt的默認支持范圍,所以需要自行開發觸摸屏驅動以實現Qt對觸摸屏的支持,觸摸屏的實現流程,如圖4所示。

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

3 Qt/Embedded開發平臺建立

3.1 開發環境

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

Qt按照應用環境的不同,分為X-Windows的X11版本與嵌入式環境的版本Qt/E。其層次結構如圖5所示。

Qt/E 通過 API與操作輸入/輸出(Input/Output,I/O)設施直接交互,它作為嵌入式GUI的實現工具,支持幀緩沖驅動,能在沒有X-Server或X-Lib支持的條件下直接寫幀緩沖,節省了內存,提高了程序的運行效率[4-5]。因此,鑒于Qt/E在跨平臺、內存占用和快速性等方面的優勢,將其作為面向糧庫信息監測的嵌入式輕型GUI構件庫的基礎構建工具。

圖5 Qtopia的軟件層次結構Fig.5 Hierarchy of qtopia software

3.2 建立Linux交叉編譯環境

嵌入式開發模式通常采用宿主機/目標機的形式,先在本機X11環境下模擬嵌入式目標平臺并完成程序的編寫與調試,再通過交叉編譯生成目標機可執行代碼。整體搭建流程如圖6所示。

圖6 開發環境搭建流程Fig.6 Building flow chart of developing environment

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

3.3 建立Qtopia開發環境

整個GUI系統的構建需要對 Qt/Embedded、Qtopia依次分別編譯鏈接,然后有機地整合在一起。Qt/Embedded為Qtopia提供了底層支持,GUI系統的圖形庫窗口組建都由Qt/Embedded實現。建立Qtopia開發環境用到如下3個文件:

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

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

4 糧情測控系統GUI設計與實現

4.1 GUI設計

根據糧情測控系統的現場功能要求GUI應主要包含如下4部分:1)糧倉環境信息的實時顯示,主要是糧倉內部環境的溫度、濕度狀況。2)糧倉控制設備的開關狀態顯示,如風機開關、天窗開關等。3)Web服務器控制按鈕,用來開啟和關閉Web服務。4)調試窗口,方便現場人員對設備參數進行調試修復。

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

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

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

GUI程序的圖形控件通過Qt帶的Designer工具進行創建,能獲得良好的視覺效果。

糧倉的溫控信息通過QTable類進行顯示,QCheckBox類負責設備狀態控制,QPushButton類可與信號槽連接實現額外功能,代碼如下:connect(ReadButton, SIGNAL(clicked()),this, SLOT(readinfo());

4.2 GUI漢化

為使糧情測控系統的人機界面支持中文風格,方便糧庫管理員的操作,需要對程序進行語言轉化處理,采用Qt/Embedded開發的嵌入式糧情測控系統的人機界面需要采取以下步驟,以實現對中文的支持:

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

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

3)設置相應的中文字體,GUI程序即可實現中文顯示。

4.3 編譯并移植程序

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

對Makefile進行修改,主要是將編譯器gcc改為交叉編譯工具arm-linux-g++,編譯生成ARM平臺目標代碼即可在目標平臺上成功運行。運行結果如圖7所示。

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

5 結束語

一個友好的圖形用戶界面對整個系統的推廣有著重要意義。在糧情測控系統的現場應用中,該系統運行穩定,實現了對各個糧倉信息實時檢測與控制,配合計算機的監控中心形成立體化監控網絡,為國家實現科學保糧奠定了基礎。

[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操作系統窗口設計[M].北京:電子工業出版社,2006.

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

猜你喜歡
嵌入式程序環境
長期鍛煉創造體內抑癌環境
一種用于自主學習的虛擬仿真環境
孕期遠離容易致畸的環境
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
環境
搭建基于Qt的嵌入式開發平臺
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
主站蜘蛛池模板: 99视频在线看| 国产欧美日韩va另类在线播放| 欧美精品在线免费| 国产传媒一区二区三区四区五区| 成人精品视频一区二区在线| 黄色成年视频| 青青青草国产| 91久久精品国产| 伊在人亚洲香蕉精品播放| 又粗又大又爽又紧免费视频| 国产精品大尺度尺度视频| 久久免费精品琪琪| 丁香五月激情图片| 日韩视频福利| 亚洲色无码专线精品观看| 青青草原国产免费av观看| 久久国产精品电影| 亚洲成AV人手机在线观看网站| 精品久久蜜桃| 色妞www精品视频一级下载| 精品国产电影久久九九| 最新亚洲人成无码网站欣赏网| yy6080理论大片一级久久| 69av免费视频| 精品国产中文一级毛片在线看| 国产成人一级| 91娇喘视频| 久久精品国产精品一区二区| 亚洲精品国偷自产在线91正片| 亚洲不卡影院| 亚洲欧美天堂网| 日韩国产精品无码一区二区三区 | 中国国语毛片免费观看视频| 99久久国产精品无码| 国产毛片片精品天天看视频| 亚洲美女一级毛片| www亚洲天堂| 欧美另类精品一区二区三区| 无码网站免费观看| 国产精品毛片在线直播完整版| 日本三级欧美三级| 久久精品嫩草研究院| 2018日日摸夜夜添狠狠躁| 综合色区亚洲熟妇在线| 日韩视频免费| 99er精品视频| 2020国产免费久久精品99| 亚洲精品无码人妻无码| 中文字幕啪啪| 免费观看国产小粉嫩喷水| 天天综合网色中文字幕| 在线观看国产精美视频| 国产v精品成人免费视频71pao| 亚洲高清资源| yy6080理论大片一级久久| 国产午夜在线观看视频| 亚洲欧洲日韩国产综合在线二区| 日韩欧美高清视频| 亚洲三级成人| 欧美特级AAAAAA视频免费观看| 国产永久无码观看在线| 欧美午夜久久| 亚洲综合18p| 久久99蜜桃精品久久久久小说| 国产精品片在线观看手机版 | 一级不卡毛片| 亚洲欧美另类中文字幕| 欧洲成人免费视频| 在线观看视频一区二区| 日本精品影院| 亚洲成人免费在线| 亚洲一级毛片免费看| 欧美日韩成人在线观看| 日韩 欧美 小说 综合网 另类| 永久免费精品视频| 国产精品理论片| 亚洲系列无码专区偷窥无码| 久久黄色视频影| 成人在线第一页| 一级全黄毛片| 美女扒开下面流白浆在线试听| 成人永久免费A∨一级在线播放|