亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        艦船電子對抗系統(tǒng)顯控軟件的跨平臺開發(fā)

        2011-08-10 06:16:00吳小強(qiáng)
        艦船電子對抗 2011年6期
        關(guān)鍵詞:圖形界面類庫電子對抗

        吳小強(qiáng)

        (海軍駐連云港716所軍事代表室,連云港222006)

        0 引 言

        艦船電子對抗系統(tǒng)顯控軟件是艦船電子對抗系統(tǒng)的人機(jī)交互界面,也是艦船電子對抗系統(tǒng)的控制樞紐與靈魂,其性能好壞在很大程度上決定了艦船電子對抗系統(tǒng)性能的好壞。它不但要完成自身的顯示控制任務(wù),同時還要適應(yīng)用戶所提出的跨平臺要求,即用戶希望顯控軟件能安裝在用戶所能提供的各種操作系統(tǒng)上,如微軟的 Ms Windows NT/2000/XP/CE系列,風(fēng)河的 VxWorks系列,Sun的Solaris系列,SCO的Unix系列以及開源的Linux操作系統(tǒng)上?;谝粋€平臺開發(fā)一個性能良好的艦船電子對抗系統(tǒng)顯控軟件已屬不易,要基于多個平臺開發(fā)更是難以想象,需要花費(fèi)更多的人力、財力、物力與時間資源,對于開發(fā)者來說,是難以承受的。唯一的解決辦法是跨平臺開發(fā)。最好能做到像Java語言那樣,“Write once,run anywhere”(編寫1次、到處運(yùn)行),那是否選擇Java來開發(fā)就解決了問題呢?不是,因?yàn)镴ava實(shí)在太慢了,艦船電子對抗系統(tǒng)顯控軟件要求實(shí)時和快速地對任何外界輸入做出反應(yīng),故只能選擇C/C++,那么用C/C++如何實(shí)現(xiàn)跨平臺開發(fā)呢?下面分析艦船電子對抗系統(tǒng)顯控軟件的體系結(jié)構(gòu),從中找出辦法。

        1 艦船電子對抗系統(tǒng)顯控軟件跨平臺分析

        1.1 艦船電子對抗系統(tǒng)顯控軟件體系結(jié)構(gòu)

        如圖1所示,艦船電子對抗系統(tǒng)顯控軟件從層次的角度來看,可分為3層。

        圖1中人機(jī)界面包括用戶圖形界面(GUI)及顯控臺上各種開關(guān)、按鈕的控制;應(yīng)用邏輯即對任何外界輸入做出反應(yīng)所進(jìn)行的計算及算法;I/O及數(shù)據(jù)庫聯(lián)接即各種網(wǎng)絡(luò)、并口、串口等I/O口連接程序及與應(yīng)用數(shù)據(jù)庫的連接程序。

        圖1 艦船電子對抗系統(tǒng)顯控軟件體系結(jié)構(gòu)圖

        1.2 艦船電子對抗系統(tǒng)顯控軟件跨平臺分析

        1.2.1 人機(jī)界面

        人機(jī)界面主要是用戶圖形界面,是實(shí)現(xiàn)跨平臺開發(fā)的主要障礙,因?yàn)樗僮飨到y(tǒng)密切相關(guān),且開發(fā)的工作量巨大,如果用戶圖形界面實(shí)現(xiàn)了跨平臺開發(fā),那么顯控軟件的跨平臺開發(fā)就實(shí)現(xiàn)了90%。

        上面提到的操作系統(tǒng)從用戶圖形界面實(shí)現(xiàn)的角度可將它們分作兩類:Windows系列及類Unix系列(除 Windows系列以外都是,包括VxWorks)。Windows系列的用戶圖形界面是其自身所附帶的,而類Unix系列均是X Window,雖然它們表現(xiàn)各異,實(shí)現(xiàn)方式不同,本質(zhì)還是X Window。

        所以,要開發(fā)顯控軟件人機(jī)界面程序只須考慮兩種平臺:Windows和X Window。1.2.2 應(yīng)用邏輯

        應(yīng)用邏輯與操作系統(tǒng)無關(guān),只需開發(fā)時使用標(biāo)準(zhǔn)的C/C++語言即可實(shí)現(xiàn)跨平臺。1.2.3 I/O及數(shù)據(jù)庫聯(lián)接

        I/O及數(shù)據(jù)庫聯(lián)接中除并口、串口等I/O口與操作系統(tǒng)密切相關(guān)外,網(wǎng)絡(luò)、及與應(yīng)用數(shù)據(jù)庫的連接具有工業(yè)標(biāo)準(zhǔn),網(wǎng)絡(luò)可用BSD的套接字,應(yīng)用數(shù)據(jù)庫的連接可用ODBC,可實(shí)現(xiàn)跨平臺。因此,這部分跨平臺開發(fā)的工作量并不大。

        綜上所述,顯控軟件跨平臺開發(fā)的工作量主要在用戶圖形界面上,用戶圖形界面實(shí)現(xiàn)了跨平臺開發(fā),任務(wù)就基本完成了。

        2 用戶圖形界面的跨平臺開發(fā)

        要實(shí)現(xiàn)用戶圖形界面的跨平臺開發(fā),關(guān)鍵是尋找一個跨平臺的GUI開發(fā)工具包,事實(shí)上wxWidgets就是這樣一個開發(fā)工具包。

        2.1 wxWidgets簡介[1]

        wxWidgets原來叫做wxWindows,后為了避開和微軟的“Windows”之爭,改名為wxWidgets。

        wxWidgets項(xiàng)目最初由當(dāng)時工作于愛丁堡大學(xué)的人工智能應(yīng)用程序研究所的Julian Smart在1992年發(fā)起,最初它只面向XView and MFC 1.0。后來,XView發(fā)展成Motif,wxWidgets也就相應(yīng)地面向 Motif和 MFC來開發(fā)。1995年,Markus Holzem加入了兼容Xt的功能。1999年,基于Windows和GTK+開發(fā)的組件也融入到wxWidgets中。如今,wxWidgets幾乎支持所有常見的開發(fā)平臺和圖形庫。

        wxWidgets是一個C++編寫的通用的、試圖跨平臺的GUI開發(fā)框架。從其體系結(jié)構(gòu)可以看出,wxWidgets事實(shí)上只是一個簡單的 Wrapper,封裝了底層的一些圖形庫,這樣的好處就是對跨平臺的支持,使得開發(fā)的程序能完全做到與平臺無關(guān)。

        表1表明了wxWidgets和下層操作系統(tǒng)的聯(lián)系,從表1可清晰看出wxWidgets的設(shè)計思想和開發(fā)思路。從wxWidgets需要實(shí)現(xiàn)的目的和意圖也可以看出,它將是開發(fā)跨平臺程序的一大利器。

        表1 wxWidgets和下層操作系統(tǒng)的聯(lián)系

        比起其他的跨平臺gui庫,wxWwidgets的特點(diǎn)和優(yōu)點(diǎn)如下:

        (1)是免費(fèi)與開源的

        wxWidgets的一大吸引力是它的licence類型是屬于 L-GPL (Library General Public Licence)的,也就是說,使用它開發(fā)的軟件并不要求一定得公開源碼。這樣,無論是免費(fèi)軟件的開發(fā)者、GPL類型的軟件開發(fā)者,還是純粹商業(yè)軟件開發(fā)者都可以免費(fèi)使用這個軟件包。

        (2)是跨平臺的GUI庫,支持的操作系統(tǒng)很全面,甚至支持PDA

        它雖然不像Java那樣是“全面”的,而僅僅是GUI庫,但GUI是計算機(jī)編程中最為麻煩、耗費(fèi)時間、容易出現(xiàn)的部分,特別當(dāng)你想要自己的軟件運(yùn)行在多個操作系統(tǒng)上的時候,開發(fā)和維護(hù)的難度令人難以想象。如果解決了GUI的問題,基本上就解決了C++的“跨平臺”問題——至少不用為每種平臺都維護(hù)1份源代碼了。

        雖然Java可以實(shí)現(xiàn)跨平臺的GUI程序,但本質(zhì)上并不是Java語言跨平臺,而是Java虛擬機(jī)跨平臺,換句話說Java并不是Native Code,它是介于編譯語言和腳本語言之間的一種特殊語言,編譯期只能完成到Code for Java VM的轉(zhuǎn)換,而真正被編譯成bytecode是在運(yùn)行期完成的(腳本語言的特性),這意味著Java程序第1次啟動時需要較長的時間去加載,雖然還有類似GJC的Java Compilers可以一次到位,但大都不能完全并很好地支持Java特性。而wxWidgets被直接編譯成機(jī)器碼,從而獲得速度優(yōu)勢。

        開發(fā)者只需要用自己使用的系統(tǒng)平臺的編譯器編譯源程序,并鏈接上相應(yīng)的庫文件,生成的程序代碼即具有該平臺的外觀和界面。

        (3)xWidgets提供的GUI是大量使用宏的,這就意味著它是在盡可能使用目標(biāo)系統(tǒng)native的GUI樣式

        這表示如果1個程序是在Windows下編譯的,將有典型的 Windows程序的外觀與行為,當(dāng)它在Linux下編譯時將擁有Linux程序的外觀與行為。

        (4)支持的編譯器也很多,如:

        Visual C++1.5,4.0,5.0,6.0,.net,2005

        Borland C++4.5,5.0

        Borland C++Builder 1.0,3.0

        Watcom C++10.6(Win32)

        Cygwin

        MinGW32

        Metrowerks CodeWarrior 4

        GNU C/C++

        (5)功能強(qiáng)大,體系結(jié)構(gòu)與微軟的MFC類庫相似,容易上手

        wxWidgets擁有一個功能比較完善的類庫,wxWidgets的類庫從功能上分為兩部分:用來構(gòu)造圖形界面的界面構(gòu)造類庫和完成傳遞信息、保存數(shù)據(jù)等輔助功能的非界面構(gòu)造類庫。構(gòu)造界面的類庫中,有各種控件類,如菜單欄、菜單項(xiàng)、按鈕、文本框等,圖2反映wxWidgets類繼承體系的一部分,該繼承體系與 MFC有一定相似之處,因此,熟悉MFC框架編程的程序員能很快適應(yīng)wxWidgets的程序開發(fā),同時已有的基于MFC的程序可很方便地移植到wxWidgets。

        圖2 wxWidgets類繼承體系(部分)

        2.2 基于wxWidgets顯控軟件開發(fā)

        鑒于wxWidgets優(yōu)秀的跨平臺性能及易用性,選擇wxWidgets來開發(fā)顯控軟件的用戶圖形界面,由于wxWidgets與MFC相似,兩者的類庫絕大部分都是一一對應(yīng)的,因此,現(xiàn)有的基于MFC的顯控軟件可以很方便地一直到wxWidgets,同時,可在大多數(shù)程序員都熟悉的Windows平臺下,甚至在Visual C++6.0的開發(fā)環(huán)境中來開發(fā)基于wxWid-gets的顯控軟件,然后到用戶所要求的平臺環(huán)境中重新編譯1次即可,這樣,將大大降低顯控軟件跨平臺開發(fā)的難度,減少開發(fā)所需的時間及人力。

        [1]Julian Smart,Kevin Hock,Stefan Csomor.Cross-platform GUI programming with wxWidgets[M].London:Pearson Education Inc,2006.

        猜你喜歡
        圖形界面類庫電子對抗
        關(guān)于變更《航天電子對抗》投稿郵箱的通知
        Epigallocatechin-3-gallate exerts antihypertensive effects and improves endothelial function in spontaneously hypertensive rats
        用Java編寫客戶機(jī)/服務(wù)器端應(yīng)用程序
        《航天電子對抗》編輯部召開第九屆編委會成立會
        《航天電子對抗》歡迎來稿
        Python在數(shù)據(jù)可視化中的應(yīng)用
        數(shù)據(jù)結(jié)構(gòu)課程教學(xué)改革方案和應(yīng)用效果
        軟件工程(2017年12期)2018-01-29 17:35:55
        數(shù)據(jù)結(jié)構(gòu)可視化類庫的設(shè)計與實(shí)現(xiàn)
        用VMRun快速置備千臺虛擬機(jī)
        大數(shù)據(jù)技術(shù)在電子對抗情報系統(tǒng)中的應(yīng)用
        電子制作(2017年23期)2017-02-02 07:17:02
        av一区二区三区在线| 日日碰狠狠躁久久躁96avv| 亚洲av无码av制服丝袜在线| 国产精品一区二区在线观看完整版| 午夜亚洲AV成人无码国产| 91在线观看国产自拍| 国产精品亚洲三级一区二区三区| 欧美xxxxx在线观看| 亚洲人成网线在线播放va蜜芽| 成人白浆超碰人人人人| 无码一区二区三区在线在看| 亚洲福利网站在线一区不卡| 亚洲av日韩专区在线观看| 亚洲国产美女高潮久久久| 97精品超碰一区二区三区 | 日韩AV不卡一区二区三区无码| 久久一区av蜜桃人妻| 日本免费一区二区精品| 久久婷婷国产综合精品| 国产精品午夜无码av天美传媒| 在线免费毛片| 亚洲高清国产品国语在线观看| 黑丝美女喷水在线观看| 伊人精品成人久久综合97| 亚洲国产精品av在线| 久久精品噜噜噜成人| 国产精品白浆一区二区免费看| 亚洲中文字幕国产剧情| 久久久久久自慰出白浆| 国产精品狼人久久久久影院| 91精品国产丝袜在线拍| 亚洲精品乱码久久麻豆| 经典三级免费看片天堂| 日本国产成人国产在线播放| 又黄又爽的成人免费视频 | 日本肥老熟妇在线观看| 丝袜美腿亚洲综合一区| 在线亚洲高清揄拍自拍一品区 | 久久精品国产成人午夜福利| 国产另类av一区二区三区| 亚洲日韩在线中文字幕综合|