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

雙緩沖技術(shù)在船舶監(jiān)控圖形界面開發(fā)中的應(yīng)用

2019-01-07 08:01:38張麗蕓陳玉沖
關(guān)鍵詞:界面

李 寬, 張麗蕓, 陳玉沖

(1. 上海船舶運(yùn)輸科學(xué)研究所 艦船自動化系統(tǒng)事業(yè)部, 上海 200135;2. 渤海造船廠集團(tuán)設(shè)計(jì)院, 遼寧 葫蘆島 125004)

0 引 言

隨著航海事業(yè)的不斷發(fā)展,機(jī)艙監(jiān)控系統(tǒng)在提高船舶的自動化水平、保證船舶安全航行等方面起著越來越重要的作用。隨著機(jī)艙自動化程度的不斷提高,實(shí)時嵌入式操作系統(tǒng)VxWorks在現(xiàn)代機(jī)艙監(jiān)控系統(tǒng)中的應(yīng)用越來越廣泛。機(jī)艙監(jiān)控系統(tǒng)是由多種監(jiān)控設(shè)備組合而成的復(fù)雜的人機(jī)系統(tǒng),需機(jī)電人員對大量信息進(jìn)行快速處理,因此對人機(jī)交互界面的要求較高。機(jī)艙監(jiān)控系統(tǒng)需對機(jī)艙設(shè)備的參數(shù)、運(yùn)行狀態(tài)和故障報警等信息進(jìn)行顯示和操作,其圖形界面在滿足傳統(tǒng)圖形用戶界面方案要求的同時,還應(yīng)具有很高的實(shí)時性和可擴(kuò)展性。美國 WRS 公司開發(fā)的媒體庫(Wind Media Library,WindML)滿足這些要求,且具有占用內(nèi)存少、可移植性強(qiáng)和高性能等特點(diǎn)。

1 開發(fā)工具及圖形顯示原理

1.1 VxWorks系統(tǒng)和WindML開發(fā)工具

VxWorks 是由美國風(fēng)河公司開發(fā)的具有微內(nèi)核、高可靠性、高實(shí)時性和可裁減等特點(diǎn)的嵌入式實(shí)時操作系統(tǒng)。VxWorks 提供有圖形開發(fā)組件WindML,在VxWorks一般的界面開發(fā)應(yīng)用中,可使用WindML進(jìn)行圖形界面設(shè)計(jì)。WindML可為運(yùn)行在嵌入式系統(tǒng)上的多媒體應(yīng)用程序提供支持,能用來開發(fā)可定制的標(biāo)準(zhǔn)化設(shè)備驅(qū)動程序的框架。

WindML包含軟件開發(fā)工具包(SDK)和驅(qū)動開發(fā)工具包(DDK)2個組件,其中:SDK用來實(shí)現(xiàn)應(yīng)用程序的開發(fā);DDK用來實(shí)現(xiàn)驅(qū)動程序的開發(fā)。WindML能滿足嵌入式計(jì)算機(jī)的所有圖形要求,保證開發(fā)人員在VxWorks實(shí)時操作系統(tǒng)上建造功能齊全、豐富多彩、可嵌入式的圖形界面。[1]

1.2 圖形顯示原理

圖形顯示由底層圖片、文字、數(shù)字和符號等共同組成,原理見圖1。

圖1 圖形顯示原理

WindML本身不支持漢字顯示,可通過調(diào)用點(diǎn)陣字庫等方法來解決該問題。在中文環(huán)境下,輸入的是漢字的內(nèi)碼,若要顯示漢字,需進(jìn)行點(diǎn)陣尋址,找到該漢字內(nèi)碼的字模信息在漢字庫中的位置,取出該字模信息進(jìn)行點(diǎn)陣顯示。

WindML的圖形界面基于像素,用顏色匹配表說明位圖中的顏色。首先在顏色匹配表上設(shè)置一種顏色的紅、綠、藍(lán)亮度值,然后用位圖陣列中的每個像素值索引值代表該點(diǎn)在顏色匹配表中的顏色。

在顯示圖形之前,須先調(diào)用WindML的API函數(shù)uglInitialize()進(jìn)行初始化,并產(chǎn)生一個圖形環(huán)境。在WindML中,一般會在使用一組畫圖函數(shù)之前用uglBatchStart()通過互斥信號量鎖定圖形上下文、圖形設(shè)備和緩沖,以防止多線程之間產(chǎn)生資源沖突。在畫圖操作完成之后,只有用 uglBatchEnd()釋放被鎖定的資源,其他畫圖函數(shù)才可使用。[2]

2 圖形開發(fā)中遇到的問題

在船舶監(jiān)控系統(tǒng)中,由于需實(shí)時采集、顯示機(jī)艙各設(shè)備的狀態(tài)和報警信息等,每次采集到數(shù)據(jù)和各界面互相切換時都要實(shí)時刷新畫面,而刷新時會出現(xiàn)畫面閃爍和劇烈抖動等現(xiàn)象。

畫面閃爍的根本原因是相鄰兩幀圖像之間存在巨大的差異。當(dāng)需顯示新的圖形或使原來顯示的圖形發(fā)生變化時,需刷新背景,用背景顏色的畫刷將背景重新刷一遍,原圖形將被覆蓋,此時畫上新圖形即可完成圖形的刷新顯示或動態(tài)顯示。但是,由于背景顏色(一般是白色)與圖形顏色之間存在反差,在不斷地重復(fù)刷新、顯示的過程中會產(chǎn)生閃爍。閃爍本質(zhì)上就是反差,反差越大,閃爍越厲害。因此,當(dāng)窗口由于切換界面或數(shù)據(jù)更新需重繪時,首先清除顯示區(qū)背景色,然后才調(diào)用OnPaint函數(shù)進(jìn)行重繪。背景色與繪圖內(nèi)容的反差經(jīng)常很大,導(dǎo)致背景色與顯示圖形在短時間內(nèi)反復(fù)切換,造成顯示窗口出現(xiàn)閃爍現(xiàn)象。

針對刷新時畫面經(jīng)常出現(xiàn)閃爍、抖動現(xiàn)象的問題,初期處理方式是以位圖背景的形式將圖形界面中的固定信息保存起來,調(diào)用uglDefault—BitmapSet()來實(shí)現(xiàn),在該背景上動態(tài)刷新變化的測點(diǎn)信息、報警等。在該方式下刷新畫面時數(shù)據(jù)量會減少,畫面的閃爍現(xiàn)象有所改善,但因采集到的監(jiān)測數(shù)據(jù)、設(shè)備的運(yùn)行狀態(tài)等是實(shí)時變化的[3],且圖形緩沖顯示方式不變,小頻率或少量的數(shù)據(jù)刷新依然會引起畫面閃爍、抖動現(xiàn)象。

3 雙緩沖技術(shù)及其實(shí)現(xiàn)

傳統(tǒng)的繪圖方式是采用單緩沖技術(shù),而要解決圖形界面開發(fā)過程中刷新圖像時遇到的閃爍、抖動問題,需依靠雙緩存方式下的雙緩沖圖形刷新技術(shù)來實(shí)現(xiàn)。

在系統(tǒng)中,所有設(shè)備都有一個被稱為設(shè)備描述表的內(nèi)存緩沖區(qū)與其對應(yīng)。傳統(tǒng)的繪圖方式(單緩沖)是將圖形繪制在唯一的內(nèi)存緩沖區(qū)中,由圖形設(shè)備接口自動將內(nèi)存緩沖區(qū)中的圖像復(fù)制到顯存中顯示。雙緩沖圖形刷新技術(shù)在內(nèi)存中有2片緩存區(qū),分別為前端緩沖區(qū)和預(yù)先使用函數(shù)uglPageDrawSet( )手動建立的與前端緩沖區(qū)兼容的后端緩沖區(qū)。在繪圖過程中,首先將下一幀要顯示的圖像繪制到后端緩沖區(qū),然后將后端緩沖區(qū)中的圖像復(fù)制到前端緩沖區(qū),最后由圖形設(shè)備接口自動將前端緩沖區(qū)中待顯示的圖像復(fù)制到顯存中,完成圖形顯示。

單緩沖技術(shù)和雙緩沖技術(shù)基本原理見圖2。

a) 單緩沖技術(shù)b) 雙緩沖技術(shù)

圖2單緩沖技術(shù)和雙緩沖技術(shù)基本原理

在圖形界面開發(fā)過程中,在同一圖形界面背景下,背景圖、標(biāo)題欄、單位和量程等圖像內(nèi)容不變,需不斷進(jìn)行更新的只有實(shí)時監(jiān)測的數(shù)據(jù)。結(jié)合前述雙緩沖技術(shù),可首先將固定不變的內(nèi)容在不可見的后臺屏幕上分層繪制,然后將其他各層的內(nèi)容透明粘貼到背景層的相應(yīng)位置上,最后再將其復(fù)制到屏幕顯示區(qū)域進(jìn)行顯示。由于固定不變的圖層無需重復(fù)繪制,因此可加快界面刷新速度。

3.1 WindML雙緩沖驅(qū)動程序配置

1) 使用pentiumM 系列主板搭建硬件環(huán)境,并準(zhǔn)備好VxWorks5.5.1 + WindML3.0 的軟件調(diào)試環(huán)境;

2) 新建一個 bootable 類型的 VxWorks 工程;

3) 將 gmch.o 庫文件添加到創(chuàng)建的工程路徑下;

4) 將 windML_INTEL_GMCH_DB.cfg 文件放置在C:Tornado221host esourcewindMLconfigdatabase 路徑下(本文假設(shè)VxWorks 開發(fā)環(huán)境安裝在 C:Tornado221 路徑下);

5) 將 gmchcfg.h 文件放置在C:Tornado221 argethugldrivergraphicsintel 路徑下(本文假設(shè). VxWorks 開發(fā)環(huán)境安裝在 C:Tornado221 路徑下);

6) 對 WindML3.0 進(jìn)行配置(見圖3)。

圖3 WindML3.0配置界面

圖4 雙緩沖流程圖

3.2 雙緩沖技術(shù)實(shí)現(xiàn)方法

在具體實(shí)現(xiàn)中,首先創(chuàng)建前后雙緩沖頁, 調(diào)用uglPageDrawSet ( )函數(shù)設(shè)置活動的雙緩沖頁,使監(jiān)測數(shù)據(jù)、設(shè)備狀態(tài)和報警等過程在Off_Screen(后臺)實(shí)現(xiàn)。在繪制當(dāng)前數(shù)據(jù)信息時,調(diào)用函數(shù)uglPageDrawSet( )另外指定繪制下一圖形操作的頁面(緩沖)。在繪制完成之后,通過 uglPagevisableSet( )將后臺的圖像拷貝到前臺,實(shí)現(xiàn)雙緩沖圖形的界面切換。雙緩沖流程圖見圖4。

部分實(shí)現(xiàn)代碼如下:

dispPage[0] = UGL_PAGE_ZERO_ID;

dispPage[1] = uglPageCreate(devId);//創(chuàng)建雙緩沖頁

uglPageDrawSet(devId, dispPage[1]);//設(shè)置活動頁

sprintf(pageName, "%s%d%s","/ata0a/rPage",fileNumber,".jpg");

uglJpegToDDBFromFile (jpegId, pageFile, &jpegDdbPageId, UGL_NULL, 0, 0);

uglBitmapSizeGet(jpegDdbPageId, &jpegWidth1, &jpegHeight1);//圖片加載

uglTextDraw(gc, dispAna[i].xPoint, dispAna[i].yPoint, -1, LDMDispAna[i]);//字符顯示

uglTextDrawW(gc, dispAna[i].xPoint, dispAna[i].yPoint, dispAna[i].dispLen, (UGL_WCHAR *)dispAna[i].dispName[dispAna[i].value] );//漢字顯示

uglBitmapBlt(gc, jpegDdbPageId, 0, 0, jpegWidth1 - 1, jpegHeight1 - 1, UGL_DEFAULT_ID, 0, 0);//位圖繪制

if(pageIndex == 1)

{

uglPageVisibleSet(devId, dispPage[1]);

uglPageDrawSet(devId, dispPage[0]);

pageIndex = 0;

}

else

{

uglPageVisibleSet(devId, dispPage[0]);

uglPageDrawSet(devId, dispPage[1]);

pageIndex = 1;

}//雙緩沖界面切換

3.3 效果

由于采用雙緩沖技術(shù)時需在內(nèi)存中新建一個臨時緩存區(qū),因此新建一個臨時位圖對象作為畫布并綁定臨時緩存區(qū)。繪圖在該緩存區(qū)中進(jìn)行,當(dāng)所有圖形繪制完成之后,將臨時緩存區(qū)中的位圖對象貼到顯示緩存區(qū)中,由于內(nèi)存中的圖形與屏幕顯示的圖形差別很小,可消除刷新屏幕時出現(xiàn)的閃爍、抖動現(xiàn)象。

顯示單元監(jiān)控界面效果見圖5。

圖5 顯示單元監(jiān)控界面效果

4 結(jié) 語

隨著監(jiān)控系統(tǒng)技術(shù)的不斷發(fā)展,對監(jiān)控系統(tǒng)實(shí)用性、可靠性和安全性的要求會越來越高,惡劣環(huán)境下的機(jī)艙圖形界面開發(fā)技術(shù)將是今后一段時期的發(fā)展重點(diǎn)。本文對VxWorks圖形顯示原理、閃屏分析、雙緩沖技術(shù)及具體應(yīng)用進(jìn)行介紹,VxWorks提供的多媒體組件WindML雙緩沖技術(shù)已成功應(yīng)用于實(shí)際工程開發(fā)中,取得了良好的效果。

猜你喜歡
界面
聲波在海底界面反射系數(shù)仿真計(jì)算分析
微重力下兩相控溫型儲液器內(nèi)氣液界面仿真分析
國企黨委前置研究的“四個界面”
基于FANUC PICTURE的虛擬軸坐標(biāo)顯示界面開發(fā)方法研究
西門子Easy Screen對倒棱機(jī)床界面二次開發(fā)
空間界面
金秋(2017年4期)2017-06-07 08:22:16
鐵電隧道結(jié)界面效應(yīng)與界面調(diào)控
電子顯微打開材料界面世界之門
人機(jī)交互界面發(fā)展趨勢研究
手機(jī)界面中圖形符號的發(fā)展趨向
新聞傳播(2015年11期)2015-07-18 11:15:04
主站蜘蛛池模板: 欧美乱妇高清无乱码免费| 国产三级毛片| 91免费片| 毛片免费高清免费| 久久精品视频一| 国模沟沟一区二区三区| 激情综合激情| 亚洲美女一区二区三区| 国产精品丝袜视频| 亚洲AV一二三区无码AV蜜桃| 亚洲成人一区在线| 色成人综合| 国产亚洲精品在天天在线麻豆 | 亚洲香蕉在线| 99视频全部免费| 久久大香伊蕉在人线观看热2| 国产精品美女网站| 婷婷六月天激情| 1级黄色毛片| 欧美精品黑人粗大| 免费在线色| 亚洲精品无码抽插日韩| 97综合久久| 亚洲—日韩aV在线| 欧美亚洲国产日韩电影在线| 国产黄网永久免费| 亚洲国产第一区二区香蕉| 一区二区三区毛片无码| 亚洲最新在线| 精品综合久久久久久97超人该| 亚洲欧美另类中文字幕| 丁香婷婷激情综合激情| 国产成年无码AⅤ片在线| 日韩中文字幕免费在线观看| 一本大道香蕉高清久久| 亚洲视频免费在线看| 国产精品久久久久久影院| 日韩无码视频播放| 国产高清无码第一十页在线观看| 99这里只有精品6| 91精品aⅴ无码中文字字幕蜜桃 | 精品久久久久成人码免费动漫| 欧美a在线看| 四虎AV麻豆| 欧美在线伊人| 国产成人禁片在线观看| 一本色道久久88| 人人妻人人澡人人爽欧美一区 | 精品久久蜜桃| 凹凸精品免费精品视频| 91青青在线视频| 午夜国产精品视频| 国产原创演绎剧情有字幕的| 免费观看欧美性一级| 亚洲一区二区黄色| 久久久久国色AV免费观看性色| 狠狠综合久久久久综| 人妻21p大胆| 国产9191精品免费观看| 免费毛片a| 亚洲欧美日韩久久精品| 日本欧美一二三区色视频| 日本一区二区三区精品国产| 在线国产毛片| 亚洲精品波多野结衣| 精品国产成人a在线观看| 欧美一区二区自偷自拍视频| 亚洲天堂777| 亚洲品质国产精品无码| 欧美日韩亚洲国产| 国产人人射| 久久国产免费观看| 黄片在线永久| 国产成人亚洲精品蜜芽影院| 狠狠色婷婷丁香综合久久韩国| 99视频在线观看免费| 亚洲一区无码在线| 亚洲AⅤ综合在线欧美一区| 亚洲系列无码专区偷窥无码| 免费不卡在线观看av| 国产成人高清精品免费5388| 麻豆精品视频在线原创|