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

基于QT的電子畫板的設計

2012-11-14 11:06:00馮耀玲孫運強姚愛琴
電子測試 2012年12期
關鍵詞:嵌入式

馮耀玲, 孫運強, 姚愛琴

(中北大學, 儀器科學與動態測試教育部重點實驗室, 山西太原 030051)

0 引言

電子畫板的優點不言而喻,可隨意修改,快速存儲,快速傳播,幾乎不耗費多余材料即可永久保存等等。本文基于Linux操作系統系統,使用Qt圖形編程工具的軟件開發。

Qt是諾基亞開發的一個跨平臺的C++圖形用戶界面應用程序框架。它提供給應用程序開發者建立藝術級的圖形用戶界面所需的所用功能。Qt是完全面向對象的,很容易擴展,并且允許真正地組件編程。它不僅實現了畫圖板的畫直線、畫圓、畫曲線、畫矩形、畫正方形等各種基本畫圖功能及其相關屬性設置,并且實現了填充圖等各種基本畫圖功能,更達到界面友好方面用戶使用的效果。

1 Qt電子畫板的總體設計

Qt電子畫板采用Qt圖形界面編程,使用四線電阻觸摸屏ADS7843作為畫板(見圖1),通過USB口與PC連接,組合而成一個可以在畫板上隨意作圖,計算機輕松實現的繪圖工具。除了作圖的功能外,該電子畫板還可以實現對已有圖片進行修改保存,創建新圖片以及改變圖片大小等常規繪圖軟件可以實現的功能。

圖1 繪圖板

2 四線電阻屏

典型觸摸屏的工作部分一般由3部分組成:兩層透明的阻性導體層、兩層導體之間的隔離層以及電極。如圖2所示。

圖2 觸摸屏結構圖

導體層選用阻性材料,如銦錫氧化物(ITO)涂在襯底上構成,上層襯底用塑料,下層襯底用玻璃。隔離層為粘性絕緣液體材料,如聚脂薄膜。電極選用導電性能極好的材料(如銀粉墨)構成,其導電性能大約為ITO的1000倍。

觸摸屏工作時,上下導體層相當于電阻網絡,如圖3所示。

圖3 工作時的導體層

當某一層電極加上電壓時,會在該網絡上形成電壓梯度。如有外力使得上下兩層在某一點接觸,則在電極末加電壓的另一層可以測得接觸點處的電壓,從而知道接觸點處的坐標。比如,在頂層的電極(X+,X-)上加上電壓,則在頂層導體層上形成電壓梯度,當有外力使得上下兩層在某一點接觸,在底層就可以測得接觸點處的電壓,再根據該電壓與電極(X+)之間的距離關系,知道該處的X坐標。然后,將電壓切換到底層電極(Y+,Y-)上,并在頂層測量接觸點處的電壓,從而知道Y坐標。

采用典型的四線電阻式觸摸屏ADS7843,其主要特點是精確度高,不受環境干擾,適用于各種場合。控制器為四線電阻式觸摸屏通用的ADS7843控制芯片,具有12位轉換精度, 支持SPI通訊協議; 內建512KByte ROM,提供繁體或簡體中文,支持2 Page 顯示模式,支持文本顯示和圖形顯示(320×240點)兩種方式,顯示模塊內建有512KByte的16×16中文顯示字型ROM (Font ROM)與8×6的ASC II半型字型,除內建8×16和16×16 的字號外,還提供字型放大的功能。

ADS7843串行接口的一次完整操作需要3×8=24個DCLK時鐘周期,前8個脈沖接收8位的命令,并在第6個脈沖的上升沿開始A/D轉換器進入采樣階段,從第9個脈沖開始進入轉換階段,輸出12位采樣值,轉換結束進入空閑階段。直到24 個DCLK結束, CS置高電平,一次測量結束。如圖4所示。

圖4 ADS7843串行接口的一次完整操作時鐘周期示意圖

當用戶在觸摸屏上的有效區域內點擊時,觸摸屏的X方向、Y方向輸出電阻分別隨X和Y呈線性變化,ADS7843控制器將其分別轉換為12位數據,通過中斷告知C8051F020需要接收數據,C8051F020接收到數據后進行處理;首先進行觸點數據是否有效判斷,包括兩方面:一是判斷是否誤操作,即是否是由于人的抖動產生的錯誤數據;二是ADS7843傳過來得數據是否有效。由于剛開始的傳過來的第一個坐標是用戶開始接觸觸摸屏時產生的,電阻不準確,導致數據也不準,通常要去掉;在接收過程中采用多次平均的方法,假如有一次接收的數據和平均值差別很大,則這次測量就作廢,需要重新測量。一旦數據有效, C8051F020接著計算觸點坐標落在液晶屏的位置,根據計算的結果判斷執行相應的功能函數。使觸摸屏和液晶屏有機的結合起來,建立一定的邏輯關系,交互地進行信息存取和輸出。流程圖如圖5所示。

圖5 流程圖

3 軟件實現

程序基本框架如圖6所示;繪圖窗口的實現流程圖如圖7所示。

圖6 程序基本框架

圖7 繪圖窗口的實現流程圖

4 關鍵技術

4.1 雙緩存

雙緩沖技術是GUI 編程中常用的技術。所謂的雙緩沖就是把需要繪制的控件保存到一個圖像中,然后在把圖像拷貝到需要繪制的控件上。在Qt 的早期版本中,為了用戶界面更加清爽,經常用這個技術來消除閃爍。

在Qt4中,所有的窗口部件默認都使用雙緩沖進行繪圖。使用雙緩沖,可以減輕繪制的閃爍感。在有些情況下,用戶要關閉雙緩沖,自己管理繪圖。下面的語句設置了窗口部件的Qt::WA_PaintOnScreen屬性 ,就關閉了窗口部件的雙緩沖。

由于Qt4不再提供異或筆,組合模式QPainter::CompostionMode_Xor()并不是異或筆,Qt4只提供了QRubberBand實現矩形和直線的繪圖反饋。因此要實現在繪圖中動態反饋必須使用其他方法。程序中使用雙環沖來解決這個問題。在繪圖過程中,一個緩沖區繪制臨時內存,一個緩沖區保存繪制好的內容,最后進行合并。在交互繪圖過程中,程序將圖像緩沖區復制到臨時緩沖區,并在臨時緩沖區上繪制,繪制完畢在將結果復制到圖像緩沖區,如果沒有交互復制,則直接將圖像緩沖區繪制顯示到屏幕上。

4.2 種子填充算法

種子填充算法又稱為邊界填充算法。其基本思想是:從多邊形區域的一個內點開始,由內向外用給定的顏色畫點直到邊界為止。如果邊界是以一種顏色指定的,則種子填充算法可逐個像素地處理直到遇到邊界顏色為止。種子填充算法常用四連通域和八連通域技術進行填充操作。

從區域內任意一點出發,通過上、下、左、右4個方向到達區域內的任意像素。用這種方法填充的區域就稱為四連通域;這種填充方法稱為四向連通算法。從區域內任意一點出發,通過上、下、左、右、左上、左下、右上和右下八個方向到達區域內的任意像素。用這種方法填充的區域就稱為八連通域;這種填充方法稱為八向連通算法。

一般來說,八向連通算法可以填充四向連通區域,而四向連通算法有時不能填充八向連通區域。例如,八向連通填充算法能夠正確填充如圖8(a)所示的區域的內部,而四向連通填充算法只能完成如圖8(b)的部分填充。

圖8 填充法示意圖

四向連通填充算法:

a)種子像素壓入棧中;

b)如果棧為空,則轉e);否則轉c);

c)彈出一個像素,并將該像素置成填充色;并判斷該像素相鄰的四連通像素是否為邊界色或已經置成多邊形的填充色,若不是,則將該像素壓入棧;

d)轉 b);

e)結束。

5 結論

5.1 運行界面

運行界面如圖9所示。

5.2 可實現的主要功能

它可以完成自由線的繪制如圖10(a)所示,圓形,直線以及橢圓的繪制如圖10(b)所示,以及改變畫筆粗度如圖10(c)所示,填充顏色如圖10(d)所示等等的輔助功能。

圖9 運行界面

圖10(a)自由線的繪制

圖10(b) 圓形,直線,橢圓的繪制

圖10(c) 畫筆加粗

圖10(d) 改變畫筆顏色

[1]陳英,梁建武.Linux 基礎及應用教程[M].北京:水利水電出版社,2008:29-42.

[2]丁丁,習勇,魏急波.三種主流嵌入式圖形用戶界面的移植及性能比較[J].電子產品世界,2004(9):73-74.

[3]丁林松,黃麗琴. QT4 圖形設計與嵌入式開發[M].北京:人民郵電出版社,2009:45-69.

[4]金西,黃汪.嵌入式 Linux 技術及其應用.計算機應用[J],2000,20(7):5-6.

[5]劉崢嶸.嵌入式Linux應用開發詳解[M].北京:機械工業出版社,2004:53-68.

[6]林銳,韓永泉.高質量程序設計指南:C++、C語言[M].北京:電子工業出版社,2007:124-155.

[7]倪繼利.QT以及linux操作系統窗口設計[M].北京:電子工業出版社,2006:45-152.

[8]錢能.C++程序設計教程[M].北京:清華大學出版社,2006:56-88.

[9]孫瓊.嵌入式Linux應用程序開發詳解[M].北京:人民郵電出版社,2006.

[10]譚浩強.C++面向對象程序設計[M].北京:清華大學出版社,2006,89-100.

[11]王子強,劉海燕,李媛州.Linux下圖形用戶界面程序的開發與實現[J].計算機應用與軟件,2005.

[12]謝春,陶燁,瞿坦.基于嵌入式Linux系統的多進程圖形用戶界面GUI系統研究[J].工業控制計算機,2003(5):28-29.

猜你喜歡
嵌入式
Focal&Naim同框發布1000系列嵌入式揚聲器及全新Uniti Atmos流媒體一體機
TS系列紅外傳感器在嵌入式控制系統中的應用
電子制作(2019年7期)2019-04-25 13:17:14
基于嵌入式Linux內核的自恢復設計
嵌入式系統通信技術的應用
電子制作(2018年18期)2018-11-14 01:48:16
嵌入式PLC的設計與研究
電子制作(2018年16期)2018-09-26 03:27:18
搭建基于Qt的嵌入式開發平臺
基于嵌入式系統Windows CE的應用程序開發
嵌入式單片機在電機控制系統中的應用探討
電子制作(2017年8期)2017-06-05 09:36:15
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
Altera加入嵌入式視覺聯盟
主站蜘蛛池模板: 欧美日韩第三页| 亚洲日韩第九十九页| 亚洲人妖在线| 亚洲色无码专线精品观看| 中文字幕波多野不卡一区| 99久久99视频| 国产大片喷水在线在线视频| 99久久精品免费看国产电影| 亚洲中文字幕无码mv| 国产美女91呻吟求| 亚洲欧美日韩天堂| 波多野结衣一区二区三区四区| 1024国产在线| 9966国产精品视频| 亚洲Av综合日韩精品久久久| 五月婷婷欧美| 精品成人免费自拍视频| 欧美怡红院视频一区二区三区| 色综合国产| 无码中文字幕乱码免费2| 欧美一级片在线| 国产亚洲视频免费播放| 久久精品人妻中文视频| 国产va在线| 日本尹人综合香蕉在线观看| 国产欧美日韩另类精彩视频| 亚洲日韩精品综合在线一区二区| 亚洲高清无码精品| 亚洲成A人V欧美综合| 91高清在线视频| 亚洲成a人片77777在线播放| 91亚洲国产视频| 久久亚洲国产一区二区| 第九色区aⅴ天堂久久香| 日本91视频| 国产久操视频| 有专无码视频| 午夜日本永久乱码免费播放片| 国产91小视频在线观看| 国产在线一区视频| 欧美劲爆第一页| 蜜臀AV在线播放| 国产女人18水真多毛片18精品| 99久久精品免费观看国产| 亚洲欧洲美色一区二区三区| 国产丰满大乳无码免费播放| Aⅴ无码专区在线观看| 欧美日韩国产在线观看一区二区三区| 亚洲日韩精品欧美中文字幕| 国产69囗曝护士吞精在线视频| 日韩区欧美区| 91在线国内在线播放老师| 在线毛片网站| 日本一区二区三区精品AⅤ| 成人福利在线视频| 亚洲天堂免费在线视频| 一区二区三区四区精品视频 | 色婷婷狠狠干| 国国产a国产片免费麻豆| 国产香蕉97碰碰视频VA碰碰看| 亚洲日产2021三区在线| 天天综合网色中文字幕| 亚洲91在线精品| 免费亚洲成人| 超碰aⅴ人人做人人爽欧美| 欧美日韩在线亚洲国产人| 欧美日韩成人| 曰AV在线无码| 伊人久久精品无码麻豆精品| 在线免费无码视频| 久久精品国产精品青草app| 国产在线拍偷自揄拍精品| 精品国产www| 综合社区亚洲熟妇p| 色噜噜狠狠色综合网图区| 欧美激情综合一区二区| 国产一级毛片网站| 亚洲色婷婷一区二区| 日韩精品资源| 欧美a在线看| 色综合中文| 91福利在线看|