• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      VxWorks環(huán)境下基于Qt的聲納信息顯示設(shè)計(jì)*

      2016-10-25 06:57:32范新剛胡海燕
      艦船電子工程 2016年9期
      關(guān)鍵詞:圖形界面圖形用戶(hù)界面聲納

      范新剛 姚 新 胡海燕

      (上海船舶電子設(shè)備研究所 上?!?01108)

      ?

      VxWorks環(huán)境下基于Qt的聲納信息顯示設(shè)計(jì)*

      范新剛姚新胡海燕

      (上海船舶電子設(shè)備研究所上海201108)

      文章提出了一種在嵌入式VxWorks環(huán)境下,基于Qt圖形化視圖框架的聲納信息顯示的新方法。實(shí)現(xiàn)基于Qt圖形化視圖框架的聲納信息顯示,使得圖形用戶(hù)界面具有信息顯示實(shí)時(shí)和程序架構(gòu)簡(jiǎn)單的優(yōu)點(diǎn)。VxWorks下利用Qt進(jìn)行窗口圖形界面開(kāi)發(fā)的方法,成功地解決了嵌入式系統(tǒng)下圖形界面開(kāi)發(fā)困難的問(wèn)題。

      VxWorks;Qt;聲納信息顯示

      Class NumberTB556

      1 引言

      VxWorks操作系統(tǒng)是美國(guó)風(fēng)河公司(Wind River Systems Inc)設(shè)計(jì)開(kāi)發(fā)的一種嵌入式實(shí)時(shí)操作系統(tǒng),良好的持續(xù)發(fā)展能力、高性能的內(nèi)核以及友好的用戶(hù)開(kāi)發(fā)環(huán)境,使VxWorks在嵌入式實(shí)時(shí)操作系統(tǒng)領(lǐng)域占據(jù)一席之地,廣泛應(yīng)用在通信、數(shù)字圖像設(shè)備軍事、航空和航天等高精尖及實(shí)時(shí)性要求極高的領(lǐng)域中[4]。

      但是VxWorks下使用WindML開(kāi)發(fā)復(fù)雜的圖形界面,需要程序員編寫(xiě)大量的代碼,對(duì)控件的實(shí)現(xiàn)都需要調(diào)用底層的作圖函數(shù)進(jìn)行繪制,造成了開(kāi)發(fā)周期長(zhǎng)的問(wèn)題。而Qt具有優(yōu)良的跨平臺(tái)特性,可以一次編寫(xiě),隨處編譯;良好封裝機(jī)制;Signal—Slot連接的事件驅(qū)動(dòng)機(jī)制;提供Qt Designer工具開(kāi)發(fā)界面,便于程序開(kāi)發(fā)等。在圖元層,而對(duì)于背景地圖等無(wú)需頻繁更新的圖層本文中使用Qt進(jìn)行窗口圖形界面開(kāi)發(fā)的方法,實(shí)現(xiàn)基于Qt圖形化視圖框架的聲納信息顯示,使得圖形用戶(hù)界面具有信息顯示實(shí)時(shí),程序架構(gòu)更加簡(jiǎn)單[1]。

      本文不考慮聲納圖像顯示。對(duì)于點(diǎn)跡、航跡等實(shí)時(shí)更新的信息顯示,采用Qt圖形化視圖框架中Graphics View / Item機(jī)制進(jìn)行處理并將其繪制信息,可以將其繪制在背景層或前景層。對(duì)于操作界面,可以利用Qt Designer進(jìn)行設(shè)計(jì)并借助于Style Sheet屬性對(duì)其美化[3]。

      本文重點(diǎn)討論在VxWorks6.6下用Qt 4.5.0進(jìn)行窗口圖形界面開(kāi)發(fā)的方法。

      2 VxWorks下的Qt的基本原理

      Qt是一個(gè)多平臺(tái)的C++圖形用戶(hù)界面應(yīng)用程序框架,它提供給開(kāi)發(fā)者建立藝術(shù)級(jí)的圖形用戶(hù)界面所需的所用功能,以下是在VxWorks中使用Qt實(shí)現(xiàn)圖形化工程的基本原理。

      2.1Qt圖形界面應(yīng)用程序的配置與編譯

      WindML是一個(gè)適用于VxWorks下開(kāi)發(fā)圖形用戶(hù)界面的媒體庫(kù),WindML通過(guò)提供一系列的圖形API函數(shù),以及鼠標(biāo)、鍵盤(pán)、字體和顯示芯片的驅(qū)動(dòng),使得用戶(hù)可以在嵌入式系統(tǒng)設(shè)備上實(shí)現(xiàn)圖形用戶(hù)界面[5]。在使用Qt之前必須先根據(jù)目標(biāo)機(jī)配置情況及應(yīng)用需求來(lái)對(duì)WindML的處理器類(lèi)型、圖形設(shè)備、輸出設(shè)備等進(jìn)行配置,配置完成后編譯WindML生成相應(yīng)的目標(biāo)文件[2]。

      完成WindML的配置和編譯后,根據(jù)工程應(yīng)用需求對(duì)VxWorks進(jìn)行配置,將C++ Components、POSIX Message Queues、POSIX Semaphores選擇包含進(jìn)VxWorks工程中,編譯生成VxWorks映像?;赒t圖像應(yīng)用開(kāi)發(fā),需要將WindML的相關(guān)組件2D graphics和complete 2D library選擇包含進(jìn)VxWorks工程中[6]。

      利用Qt進(jìn)行圖形界面應(yīng)用程序的開(kāi)發(fā),需要對(duì)WindML進(jìn)行相應(yīng)的配置、編譯和連接,并完成VxWorks操作系統(tǒng)配置[8]。首先用戶(hù)使用Qt提供的可視化設(shè)計(jì)工具來(lái)構(gòu)建相應(yīng)的圖形操作界面,生成.pro工程文件,在用make等Qt相關(guān)操作生成.cpp和.h文件;然后在WorkBench3.0編譯環(huán)境下將進(jìn)行編譯和鏈接生成最終的應(yīng)用程序目標(biāo)碼。編譯界面如下圖1所示。

      圖1 Qt圖形界面應(yīng)用程序編譯示意圖

      2.2圖形界面應(yīng)用程序開(kāi)發(fā)

      圖形界面的開(kāi)發(fā)主要通過(guò)Qt Designer來(lái)實(shí)現(xiàn),Qt提供了大量的圖形控件,用戶(hù)以拖放的方式從控件面板添加相應(yīng)的控件對(duì)象,通過(guò)雙擊控件的方式打開(kāi)控件屬性編輯框,通過(guò)控件屬性編輯框,用戶(hù)可以設(shè)定控件的標(biāo)題、位置、顏色、圖片、字體、BOX類(lèi)型、事件響應(yīng)方式等屬性[7]。界面設(shè)計(jì)完成之后,用戶(hù)可以進(jìn)行界面效果的預(yù)覽。利用Qt可視化界面設(shè)計(jì)工具設(shè)計(jì)好圖形界面后,接下來(lái)就是在此基礎(chǔ)上進(jìn)行圖形界面應(yīng)用程序的編寫(xiě)。

      3 聲納信息顯示設(shè)計(jì)

      聲納信息顯示主要包括點(diǎn)跡、航跡、聲納圖像、背景地圖以及矢量圖形等信息顯示。本文中的聲納圖像實(shí)時(shí)顯示功能借助于硬件手段實(shí)現(xiàn),故不再描述。對(duì)于點(diǎn)跡、航跡,由于其信息實(shí)時(shí)更新,因此可以使用作為圖元繪制在圖元層[12];而對(duì)于背景地圖等不經(jīng)常改變的信息,繪制于背景層。

      3.1點(diǎn)跡和航跡顯示

      由于點(diǎn)跡和航跡顯示方法類(lèi)似,故以點(diǎn)跡顯示為例[9],從基類(lèi)QGraphicsItem中派生一個(gè)用戶(hù)定制的圖元類(lèi)QGraphicsPlotItem表示聲納點(diǎn)跡對(duì)象。用QGraphicsPlotItem成員變量表征點(diǎn)跡屬性,用QGraphicsPlotItem成員函數(shù)定制點(diǎn)跡操作。每個(gè)點(diǎn)跡用一個(gè)QGraphicsPlotltem對(duì)象來(lái)表示,然后建立一個(gè)點(diǎn)跡鏈Q(jìng)PlotLink保存所有點(diǎn)跡信息。當(dāng)收到一個(gè)新點(diǎn)跡時(shí),在點(diǎn)跡鏈Q(jìng)PlotLink前插入一個(gè)QGraphicsPlotItem對(duì)象表示該點(diǎn)跡,并調(diào)用setPos()函數(shù)設(shè)置其場(chǎng)景位置,然后調(diào)用addItem()函數(shù)將QGraphicsPlotItem對(duì)象添加到場(chǎng)景中并在視圖顯示。若點(diǎn)跡消失,此時(shí)需要將QPlotLink鏈表中最后一個(gè)單元?jiǎng)h除,并調(diào)用QGraphicsScene的函數(shù)removeItem()將該對(duì)象從場(chǎng)景中刪除。

      3.2背景信息顯示

      本應(yīng)用實(shí)例中,背景信息為電子海圖,不需要經(jīng)常改變的。故使用QPixmap類(lèi)進(jìn)行背景顯示,創(chuàng)建一個(gè)QPixmap類(lèi)的對(duì)象指針pPixmap,然后將背景路徑信息進(jìn)行設(shè)置[11],例如QPixmap(QObject::tr ("/Dos/icon.bmp")),然后在調(diào)用setPixmap()函數(shù)將背景添加到場(chǎng)景中并顯示。

      3.3矢量圖形顯示

      在聲納信息顯示中,常需繪制刻度線輔助目標(biāo)測(cè)量,如距離刻度線、方位刻度線,具有特定功能的區(qū)域,如參數(shù)區(qū)、目標(biāo)區(qū)等。Qt提供底層的繪圖類(lèi)QPainter。該類(lèi)既可以繪制簡(jiǎn)單的直線,也可以繪制復(fù)雜的圖形。如提供drawline()函數(shù)繪制直線,drawPic()繪制扇形,drawText()繪制文本,drawPath()繪制復(fù)雜圖形。對(duì)于距離刻度線,通過(guò)調(diào)用drawLine()即可實(shí)現(xiàn),對(duì)于方位刻度線,在PPI顯時(shí)可以調(diào)用drawEIlipse()函數(shù)繪制圓形[10]。并將以上繪制函數(shù)放入QPaintEvent事件中來(lái)調(diào)用即可。

      3.4應(yīng)用程序?qū)嵗?/p>

      本實(shí)例為一個(gè)窗口應(yīng)用,采用Qt4.5.0進(jìn)行聲納信息顯示軟件開(kāi)發(fā),其顯示界面如圖2所示。通過(guò)實(shí)際應(yīng)用可以發(fā)現(xiàn)其信息顯示和戰(zhàn)術(shù)操作完全滿足聲納信息顯示的需要。本實(shí)例界面中包含有一個(gè)菜單條控件、一個(gè)表格控件以及六個(gè)按鈕控件。通過(guò)點(diǎn)擊顯示目標(biāo)信息按鈕可以在表格控件中實(shí)時(shí)顯示目標(biāo)的相關(guān)信息,表格控件的內(nèi)容是動(dòng)態(tài)更新的。通過(guò)點(diǎn)擊顯示按鈕可以實(shí)時(shí)顯示設(shè)備的參數(shù)信息。通過(guò)相應(yīng)的菜單選項(xiàng)可以進(jìn)行目標(biāo)信息的查看等。

      圖2 聲納應(yīng)用實(shí)例窗口界面

      4 結(jié)語(yǔ)

      Qt為用戶(hù)提供了一套完整的嵌入式人機(jī)界面解決方案,其簡(jiǎn)潔高效的程序界面設(shè)計(jì)方式,大大減輕了程序設(shè)計(jì)人員進(jìn)行界面設(shè)計(jì)的勞動(dòng)強(qiáng)度,提高了程序開(kāi)發(fā)效率。本文介紹了Qt圖形界面開(kāi)發(fā)工具,分析了利用該工具進(jìn)行用戶(hù)界面設(shè)計(jì)以及相應(yīng)的應(yīng)用程序的開(kāi)發(fā)過(guò)程。通過(guò)實(shí)際工程應(yīng)用表明,Qt在功能和性能方面能夠滿足基于VxWorks的實(shí)時(shí)系統(tǒng)窗口圖形界面開(kāi)發(fā)要求,在嵌入式系統(tǒng)圖形開(kāi)發(fā)方面有著廣泛的應(yīng)用前景。

      [1]孔祥營(yíng),柏桂枝.嵌入式實(shí)時(shí)操作系統(tǒng)VxWorks及其開(kāi)發(fā)環(huán)境[M].北京:中國(guó)電力出版社,2002:156-160.

      [2]陳智育,溫彥軍,陳琪.VxWorks程序開(kāi)發(fā)實(shí)踐[M].北京:人民郵電出版社,2004:210-225.

      [3]申成祎.基于VxWorks操作系統(tǒng)的WindML 2D顯示方案[J].電腦開(kāi)發(fā)與應(yīng)用,2004,10(6):45-47.

      [4]周曉光,翟尹羚.基于嵌入式Linux下的MiniGUI的應(yīng)用[J].電腦知識(shí)與技術(shù),2005,35(10):96-97.

      [5]梁勇,孟橋.嵌入式操作系統(tǒng)VxWorks中的顯控程序設(shè)計(jì)[J].電子工程師,2002,28(12):7-9.

      [6]張娜歡,葉經(jīng)方,嚴(yán)雋鈺.MiniGUI在電力通信服務(wù)器中的應(yīng)用[J].電子工程師,2007,33(12):50-52.

      [7]張升,陶維青.嵌入式圖形用戶(hù)界面MiniGUI[J].儀器儀表用戶(hù),2004,11(6):82-84.

      [8]蔡華,卞新高,史中權(quán).基于VxWorks的WindML圖形界面開(kāi)發(fā)方法[J].工業(yè)控制計(jì)算機(jī),2005,18(8):28-30.

      [9]李海亮,石鵬程.VxWorks的WindML圖形界面程序的框架分析[J].工業(yè)控制計(jì)算機(jī),2007,20(1):46-47.

      [10]曾虹,吳新華,張翔.基于MiniGUI的數(shù)據(jù)采集卡應(yīng)用系統(tǒng)的開(kāi)發(fā)[J].杭州電子科技大學(xué)學(xué)報(bào),2007,27(1):54-58.

      [11]汪麗云,徐曉蘇.基于VxWorks的PCI設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)[J].艦船電子工程,2006,26(1):87-90.

      [12]陳恩慶,王忠勇,宋豫冀.VxWorks下圖形用戶(hù)界面的開(kāi)發(fā)[J].微計(jì)算機(jī)信息:測(cè)控儀表自動(dòng)化,2003,19(3):48-49.

      Design of Sonar Information Display Based on Qt in VxWorks

      FAN XingangYAO XinHU Haiyan

      (Shanghai Marine Electric Equipment Institute,Shanghai201108)

      In order to find a solution to the difficulty about graphical interface development of embedded system,this article discusses the development ways of VxWorks graphical interface development based on Qt,analyzes the Qt’s principle of work and development flow,then presents an application example.Engineering application proves that Qt has powerful function and its usage is convenient.Also,it is a good solution of embedded system graphical interface development.

      VxWorks,Qt,sonar information display

      2016年3月16日,

      2016年4月27日

      范新剛,男,碩士,工程師,研究方向:嵌入式系統(tǒng)顯控設(shè)計(jì)。姚新,男,高級(jí)工程師,研究方向:信號(hào)處理。胡海燕,女,碩士,高級(jí)工程師,研究方向:顯控設(shè)計(jì)。

      TB556DOI:10.3969/j.issn.1672-9730.2016.09.022

      猜你喜歡
      圖形界面圖形用戶(hù)界面聲納
      Epigallocatechin-3-gallate exerts antihypertensive effects and improves endothelial function in spontaneously hypertensive rats
      Daniel Kish
      船載調(diào)頻連續(xù)波聲納測(cè)深技術(shù)研究
      圖形用戶(hù)界面外觀設(shè)計(jì)專(zhuān)利保護(hù)問(wèn)題探析——以“奇虎訴江民案”為例
      基于聽(tīng)覺(jué)特征的被動(dòng)聲納目標(biāo)識(shí)別
      淺談圖形用戶(hù)界面(GUI)技術(shù)專(zhuān)利現(xiàn)狀
      用VMRun快速置備千臺(tái)虛擬機(jī)
      圖形用戶(hù)界面法律保護(hù)問(wèn)題與對(duì)策
      重看圖形界面“扁平化”與“擬物化”之爭(zhēng)——關(guān)于設(shè)計(jì)思維的探討
      關(guān)于聲納發(fā)射電源的改進(jìn)設(shè)計(jì)
      固镇县| 洛南县| 万荣县| 井陉县| 湘潭县| 海淀区| 潼南县| 龙岩市| 禹州市| 江华| 哈巴河县| 新泰市| 屏东市| 承德县| 嘉义市| 井冈山市| 城口县| 仙居县| 永仁县| 措勤县| 辽中县| 新民市| 南皮县| 万盛区| 琼中| 广西| 临汾市| 黑山县| 霍山县| 雷州市| 甘孜| 新巴尔虎左旗| 宣威市| 广河县| 达尔| 南华县| 大丰市| 宽城| 宜丰县| 庐江县| 屏南县|