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

基于Qt/Embedded的嵌入式控制界面開發

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

1 控制界面的圖形化設計

在風電控制界面設計中,對用戶特征分析十分重要,用戶一般是受過訓練的,經常使用計算機而且有相當經驗的非程序員用戶。其人機界面開發中應考慮以下幾方面:

(1)安全性:設定操作員級別,使畫面顯示,執行和操作根據權限的不同而有區別。
(2)順序原則:信息分層,增強可讀,集成一致性。
(3)圖形系統:完成特定圖形的輸入,顯示和操作。
(4)實時數據的操作:對現場采集的數據能在限定的時間內給予顯示,通過畫面方便的在線調節和設定一些參數。如風電中風速顯示,葉輪的轉角調節等。
(5)先進的報警系統。

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

2 開發過程

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

2.1 建立交叉編譯環境

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


圖1 嵌入式Qt交叉編譯開發過程

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

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

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

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

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

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

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

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

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

2.2 Qt/Embedded開發程序過程

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


圖2 Qt/Embedded編程過程

* 利用Qt Designer開發

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

在風電控制系統中為了設定用戶級別,對信息進行安全管理和根據權限而限制操作范圍,一般需要有用戶登錄管理,如:


圖3 用戶管理界面

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

* 編寫程序開發

這是一般程序員開發程序時所用的方式。在控制界面中,需要使用很多圖元和圖標,系統應該有圖庫集和能調入圖形的擴展接口;蛘呤怯凶约航⒌幕緢D元。Qt中有很多為應用程序提供圖片的方法。常用的有:

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

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

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


圖4 桌面系統

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

2.3 將程序發布到目標板上

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

3 結束語

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


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

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

廠商推薦

  • Microchip視頻專區
  • 了解一下Microchip強大的PIC18-Q24 MCU系列
  • 基于CEC1712實現的處理器SPI FLASH固件安全彈性方案培訓教程
  • 無線充電基礎知識及應用培訓教程3
  • 安靜高效的電機控制——這才是正確的方向!
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 五月婷婷激情五月 | 99re热这里只有精品18 | 1024国产精品视频观看 | 成人亚洲国产综合精品91 | 欧美亚洲国产视频 | 美国美女一级毛片免费全 | 在线播放三级 | 欧洲第一区第二区第三区 | 久久激情免费视频 | 黄色毛片在线 | 91麻豆怎么进去 | 国产成人91高清精品免费 | 青青草原网址 | 国产欧美日韩精品一区二区三区 | 高h全肉动漫在线观看最新 高h全肉动漫在线观看免费 | 黑人又大又粗好爽好猛视频 | 2021国产麻豆剧传媒剧情最新 | 欧美高清视频在线观看 | 日韩精品一区二区三区高清 | 久久99久久精品国产99热 | aaa一区二区三区 | 成人午夜看片 | 免费视频精品一区二区三区 | 上海一级片 | 国产护士一级毛片高清 | 国产欧美在线播放 | 色综合国产 | 中文字幕免费人成乱码中国 | 特黄特级高清免费视频毛片 | 啦啦啦免费高清在线影院 | 天堂在线.www资源在线观看 | 三级色网站 | 国产日产高清欧美一区二区三区 | 朝鲜一级一级妇女毛片 | 在线观看黄页 | 免费羞羞网站 | 日韩成人影视 | 91免费公开视频 | 免费一级特黄3大片视频 | 欧美视频一 | 天堂在线www在线资源 |