国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

基于Qt/Embedded的嵌入式控制界面開發(fā)

發(fā)布時間:2010-4-23 11:05    發(fā)布者:我芯依舊
關(guān)鍵詞: Embedded , 控制界面 , 嵌入式
基于GPL(General Public License)架構(gòu)之下的Linux,具有硬件需求低,架構(gòu)開放,系統(tǒng)穩(wěn)定,保密性好等特點(diǎn),嵌入式Linux的這些優(yōu)點(diǎn)正好符合工控領(lǐng)域安全性,穩(wěn)定性,實時性和易維護(hù)等要求。另外,嵌入式Linux操作系統(tǒng)中一個重要的組成部分就是圖形用戶界面GUl(Graphic User Interface)。風(fēng)電控制系統(tǒng)中人機(jī)界面功能復(fù)雜,種類繁多,其性能的好壞主要取決于圖形功能的設(shè)計。利用Qt/Embedded(簡稱qte)開發(fā)的GUI,能實現(xiàn)系統(tǒng)的監(jiān)視,控制,管理等功能。

1 控制界面的圖形化設(shè)計

在風(fēng)電控制界面設(shè)計中,對用戶特征分析十分重要,用戶一般是受過訓(xùn)練的,經(jīng)常使用計算機(jī)而且有相當(dāng)經(jīng)驗的非程序員用戶。其人機(jī)界面開發(fā)中應(yīng)考慮以下幾方面:

(1)安全性:設(shè)定操作員級別,使畫面顯示,執(zhí)行和操作根據(jù)權(quán)限的不同而有區(qū)別。
(2)順序原則:信息分層,增強(qiáng)可讀,集成一致性。
(3)圖形系統(tǒng):完成特定圖形的輸入,顯示和操作。
(4)實時數(shù)據(jù)的操作:對現(xiàn)場采集的數(shù)據(jù)能在限定的時間內(nèi)給予顯示,通過畫面方便的在線調(diào)節(jié)和設(shè)定一些參數(shù)。如風(fēng)電中風(fēng)速顯示,葉輪的轉(zhuǎn)角調(diào)節(jié)等。
(5)先進(jìn)的報警系統(tǒng)。

眾多的自動化控制設(shè)備,如微機(jī)調(diào)速器以及微機(jī)測量儀表等它們采用小體積的Flash或ROM,處理器性能相對較弱,它們適合用嵌入式GUI來完成人機(jī)交互的操作。嵌入式Linux系統(tǒng)的有代表性的GUI系統(tǒng)主要有MiniGUI、Microwindows、TinyX以及Qt/Embedded。很多工控軟件是使用c++語言編寫的,而且系統(tǒng)本身對庫的健壯性,穩(wěn)定性要求比較高,用qte能設(shè)計出優(yōu)秀的圖形界面,并且能和其它C++程序互相調(diào)用。

2 開發(fā)過程

開發(fā)使用的硬件平臺為H9200F系統(tǒng)主板,它是基于嵌入式工業(yè)控制系統(tǒng)的開發(fā)套件。系統(tǒng)的核心是32位ARM920T核的高速ARM處理器AT91RM9200,移植了Uboot,設(shè)備的驅(qū)動程序包括觸摸屏驅(qū)動和unux-2.4.27的內(nèi)核,交叉編譯工具為cross-2.95.3。

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

嵌入式系統(tǒng)應(yīng)用軟件的開發(fā)屬于跨平臺開發(fā),因為嵌入式設(shè)備所用的CPU和Pc機(jī)上的CPU有著不同的架構(gòu),需要一個交義開發(fā)環(huán)境在PC機(jī)上編譯出適用于嵌入式設(shè)備CPU架構(gòu)的軟件。用來開發(fā)的計算機(jī)一般稱為宿主機(jī)(X86),它運(yùn)行Linux程序;嵌入式設(shè)備稱為目標(biāo)機(jī),一般就是目標(biāo)板(arm),所以我們必須配置兩套開發(fā)環(huán)境((for ARM和for X86)。如圖1為完整的嵌入式Qt程序開發(fā)流程。


圖1 嵌入式Qt交叉編譯開發(fā)過程

從網(wǎng)上下載免費(fèi)的Qt/Embedded開發(fā)包,本系統(tǒng)采用qte3.3.4的版本:qt-embedded-free-3.3.4.tar.gz,qt-x11-free-3.3.4.tar.gz。其軟件包中自帶了qmake,可以生成工程文件和Makefile文件。

* 將壓縮包解壓后安裝在主機(jī)上。在qte的安裝過程中,研究了以下幾個問題:

(1)./configure后的命令指定Qt嵌入式開發(fā)包能否生成虛擬緩沖幀工具qvfb,支持的顯示顏色深度,支持的圖形種類等。如果qte的應(yīng)用是在UNIX/Linux平臺下開發(fā)的話,那么qvfb就可以在機(jī)器上以一個獨(dú)立的控制臺或者虛擬緩沖幀的方式來運(yùn)行,通過指定顯示設(shè)備的寬度,高度和顏色深度,虛擬出來的緩沖幀將和物理的顯示設(shè)備在每個像素卜保持一致。這樣每次調(diào)試應(yīng)用時開發(fā)人員就不用總是刷新嵌入式設(shè)備的FLASH存儲空間。從而加速了應(yīng)用的編譯、鏈接和運(yùn)行周期。

(2)安裝完成后為保證每次運(yùn)行程序的路徑都足正確的,需要修改個人設(shè)定文檔中的~/.bashrc文件或者~/.bash_profile或者系統(tǒng)路徑文件,在文檔中加入幾個路徑變量,特別是QTEDIR=qte安裝路徑,QTDIR=qte安裝路徑和qte的lib文件路徑的設(shè)定。

(3)運(yùn)行qvfb,若無法找到輸入設(shè)備,如顯示/dev下沒有fb0設(shè)備,則列臨時文件夾/tmp下刪除相應(yīng)的文件;如果是缺少字庫,則將系統(tǒng)里的字庫拷貝到QTDIR/lib下,最后必須保證環(huán)境變量PATH能搜尋到qvtb命令。

* 第二步是在交義編譯的目錄下重新安裝能編譯目標(biāo)板arm程序的qte。

首先在交叉編澤目錄下重新解壓qt-embedded-free-3.3.4.tar.gz,將X86的QTEDIR/bin文件罩的moc和uic二進(jìn)制文件復(fù)制到交義編譯的目錄下的bin文件夾里。然后配置交叉編譯工具(如qmake),修改.conf文件,指定文件的編譯器為安裝的交叉編譯工具,即QMAKE_CC,QMAKE_CXX,QMAKE_LINK,QMAKE_LINK_SHLIB所用的工具。

精簡Qt就在于make命令,按開發(fā)的實際需求可以增減Qt庫的大小。qte開發(fā)包有5種編譯范圍的選項,使用這些選項,可控制Qt生成的庫文件的大小。每個選項都對應(yīng)在$QTDIR/src/tools/的.h(標(biāo)頭檔)文件里.Tmlltech把這些標(biāo)頭檔定義為“Feature Definition Files”(特征定義檔)。除廠使用已有的五種定義外,也可以根據(jù)實際定義Qt的特征,把在sre/tools/中所不需要的項目用QT_NO_記錄下來創(chuàng)造一個自定義標(biāo)頭檔,但是還要注意項目之間功能的相依性問題。

最后,執(zhí)行strip命令:#strip -R.note -R.comment $QTDIR/lib/lihqte.so*。將交叉編譯好的Qt庫libqte.so*下載到開發(fā)板中的某個目錄下。

2.2 Qt/Embedded開發(fā)程序過程

Qt/Embedded的開發(fā)有兩種方式,一種是圖形編程方式,一種是傳統(tǒng)的代碼編程方式。不論是使用圖形界面編程還是直接寫代碼。都會涉及到Qt的元對象系統(tǒng)。Qt的一個主要成就就是使用了一個機(jī)制擴(kuò)展了c++并且可以創(chuàng)建獨(dú)立的軟件組件。這種機(jī)制被稱為元對象系統(tǒng),它有兩個關(guān)鍵技術(shù):信號和槽,以及內(nèi)省(introspection)。內(nèi)省功能是實現(xiàn)信號和槽的基礎(chǔ),它允許程序員在運(yùn)行時獲得有關(guān)QObject子類的“元信息”,包含對象的類名以及它所支持的信號和槽的列表。但是標(biāo)準(zhǔn)的c++沒有對Qt元對象系統(tǒng)提供支持。Qt通過提供一個獨(dú)立的工具moc來解析Q_OBJECT類定義。moc使用純c++來實現(xiàn)它所有功能,所以Qt的元對象系統(tǒng)可以在任意C++編譯器上工作。


圖2 Qt/Embedded編程過程

* 利用Qt Designer開發(fā)

這是一種所見即所得的方式。啟動Qt圖形編輯器,編輯GUI界,保存后得到.ui文件。在Qt Designer的代碼編輯器里輸入的代碼保存為file.ui.h文件(一個C++源文件)。雙擊窗體啟動Qt Designer的代碼編輯器,可以添加所制窗口的一些額外功能。比如添加新的槽函數(shù).Qt Designer會自動監(jiān)測到在代碼中已經(jīng)創(chuàng)建了一個新槽,并且Uic(User Interface Compiler)會在窗體的類定義中自動生成正確的函數(shù)聲明。在Qt中,uic是從XML文件生成代碼的用戶編輯器,用來將fiie.ui文件生成file.h和file.cpp文件。

在風(fēng)電控制系統(tǒng)中為了設(shè)定用戶級別,對信息進(jìn)行安全管理和根據(jù)權(quán)限而限制操作范圍,一般需要有用戶登錄管理,如:


圖3 用戶管理界面

兩個界面是用Qt Designer開發(fā)的,它們進(jìn)行切換的功能就可以在代碼編輯器中蓖寫accept ()函數(shù)實現(xiàn),即:Login1的對象->hide0;Login2的對象->show0,

* 編寫程序開發(fā)

這是一般程序員開發(fā)程序時所用的方式。在控制界面中,需要使用很多圖元和圖標(biāo),系統(tǒng)應(yīng)該有圖庫集和能調(diào)入圖形的擴(kuò)展接口。或者是有自己建立的基本圖元。Qt中有很多為應(yīng)用程序提供圖片的方法。常用的有:

(1)在運(yùn)行時候把圖片保存到文件中并且載人它們;
(2)在源文件中包含XMP文件(因為XMP文件也是有效的C++文件)
(3)使用Qt的圖片集機(jī)制。

圖片集方法比在運(yùn)行的時候載入文件更加方便和迅速,并且它可以和所有支持的文件格式一起工作。這些圖片被存放在源代碼樹中名為images的子目錄下。

程序中繼承QMainWindow()類編寫桌面,采用Qt的布局管理器QGridLayout().QVBoxLayout()和QHBoxLayout(),在桌面上雙擊第三個圖標(biāo)Item 3打開表格處理程序為:


圖4 桌面系統(tǒng)

void desktop::iconView()
{ QIconView *qiconview=new QIconView(this);//定義按鈕類對象
⋯//對象的屬性設(shè)定
QIconViewItem *itemX:new QIconViewItem(qiconview, QString("Item X")); //定義各個按鈕
⋯//按鈕屬性(setRenameEnabled(),setPixmap()等)
QObject::connect(qiconview,SIGNAL(doubleClicked(QIconViewItem *)),this,SLOT(itemClicked(QIconViewItem *)));//按鈕信號與槽的設(shè)定
⋯//鼠標(biāo)移動按鈕的監(jiān)聽}
void desktop::itemClicked(QIconViewItem *item)//按鈕按下的槽函數(shù)
{int id=item->index();
switch(id){
case 0-2:{...//其他應(yīng)用程序}break;
case 3:{表格程序的對象base;
base->show0;
base的屬性設(shè)定;}break;⋯}

2.3 將程序發(fā)布到目標(biāo)板上

將開發(fā)好的Qt/Embedded程序用交叉編譯工具重新編譯成可執(zhí)行文件,生成二進(jìn)制目標(biāo)可執(zhí)行代碼,再將嵌入式目標(biāo)系統(tǒng)掛載到Linux宿主機(jī)的共享分區(qū),讓qte程序直接運(yùn)行在嵌入式目標(biāo)系統(tǒng),并進(jìn)行調(diào)試。調(diào)試成功以后,就可以把程序同化到系統(tǒng)的FLASH存儲器中。如果需要程序開機(jī)自動運(yùn)行,可以編輯啟動時的執(zhí)行文件/usr/etc/rc.local,將啟動運(yùn)行的程序路徑及文件名添加到這里,就可以實現(xiàn)系統(tǒng)啟動時的程序自動運(yùn)行。

3 結(jié)束語

桌面系統(tǒng)實現(xiàn)了圖像數(shù)據(jù)的載入,文字編輯,表格處理和屏幕鍵盤等基礎(chǔ)功能,為開發(fā)風(fēng)力發(fā)電組態(tài)軟件提供了一個很好的平臺。本文的創(chuàng)新點(diǎn)在于:1.以設(shè)計風(fēng)力發(fā)電控制臺人機(jī)交互界面為前提,以用戶需求結(jié)合qte特點(diǎn)來開發(fā)嵌入式GUI。2.對qte安裝和編程上的技術(shù)問題做了詳細(xì)分析,提出精簡qte的方法。


作者:趙瑩,徐大平,呂躍剛      來源:《微計算機(jī)信息》(嵌入式與SOC)2009年第4-2期
本文地址:http://m.qingdxww.cn/thread-10754-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對其真實性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • 了解一下Microchip強(qiáng)大的PIC18-Q24 MCU系列
  • PIC18-Q71系列MCU概述
  • 基于CEC1712實現(xiàn)的處理器SPI FLASH固件安全彈性方案培訓(xùn)教程
  • 想要避免發(fā)生災(zāi)難,就用MPLAB® SiC電源仿真器!
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产香蕉视频在线播放 | 国产成人毛片毛片久久网 | 亚洲欧洲国产经精品香蕉网 | 18视频网站在线观看 | 全高清特级毛片 | 成年人视频免费在线播放 | 亚洲最大福利视频 | 久久99国产精品二区不卡 | 免费欧洲毛片a级视频老妇女 | 中文字幕第15页 | 一区二区三区视频在线播放 | 欧美亚洲另类综合 | 欧美视频网站免费看 | 日本视频免费高清一本18 | 亚洲综合色在线观看 | 欧洲欧美成人免费大片 | 99福利资源久久福利资源 | 日本www色视频成人免费免费 | 天天综合久久久网 | 成人欧美在线观看 | 天天影视欧美 | 日韩免费看 | 精品欧美日韩一区二区三区 | 国内精品免费久久久久妲己 | 国产精品麻豆久久99 | 国产午夜精品一区二区三区不卡 | 九九视频在线播放 | 99久久精品毛片免费播放 | 可以免费观看的黄色网址 | 精品久久久噜噜噜久久7 | 日日日日干 | 日本精品视频一区二区 | 男人的天堂网在线 | 国产成人精品一区二区 | 国产精品区牛牛影院 | 日韩黄色网页 | 日本在线观 | 成人中文字幕在线观看 | 国产乱码一区二区三区四区 | h小视频在线 | 国产一二三视频 |