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

嵌入式GIS圖形中間件的設(shè)計(jì)與實(shí)現(xiàn)

2010-09-28 01:19:10劉小林華一新張江水
測繪通報(bào) 2010年11期
關(guān)鍵詞:嵌入式設(shè)備系統(tǒng)

劉小林,華一新,葛 文,張江水

(信息工程大學(xué)測繪學(xué)院,河南鄭州450052)

嵌入式GIS圖形中間件的設(shè)計(jì)與實(shí)現(xiàn)

劉小林,華一新,葛 文,張江水

(信息工程大學(xué)測繪學(xué)院,河南鄭州450052)

導(dǎo)航儀、手機(jī)地圖等嵌入式GIS已經(jīng)深入人們?nèi)粘I睿欢鴷r(shí)下開發(fā)嵌入式GIS軟件時(shí)需要針對(duì)不同的嵌入式軟、硬件平臺(tái)編寫不同的代碼。設(shè)計(jì)并實(shí)現(xiàn)了嵌入式GIS圖形中間件,基于CG-GDI開發(fā)的嵌入式GIS可以在不同的嵌入式軟、硬件平臺(tái)上使用,達(dá)到“一套代碼,隨處運(yùn)行”的目的。

嵌入式;GIS;中間件;圖形

一、引 言

目前,嵌入式GIS已經(jīng)深入人們的日常生活,車載導(dǎo)航儀、手機(jī)地圖隨處可見。但是嵌入式硬件與嵌入式操作系統(tǒng)的多樣性,為開發(fā)嵌入式GIS帶來了極大的不便,而其中不同嵌入式操作系統(tǒng)間關(guān)于圖形設(shè)備接口的描述則是差異最大的部分,也是嵌入式GIS系統(tǒng)平臺(tái)在不同操作系統(tǒng)間移植的最大障礙;另一方面,由于嵌入式應(yīng)用的多樣性,GIS人員不能開發(fā)出完全適合于實(shí)際應(yīng)用需求的嵌入式應(yīng)用系統(tǒng),而各個(gè)應(yīng)用領(lǐng)域的開發(fā)者往往又會(huì)因嵌入式GIS開發(fā)所涉及的專業(yè)性而放棄。

針對(duì)上述問題,筆者設(shè)計(jì)了嵌入式GIS圖形中間件(common GIS-GDI,CG-GDI)。CG-GDI是基于中間件的思想專為嵌入式GIS設(shè)計(jì)的一個(gè)通用的圖形繪制具體實(shí)現(xiàn)層,它的主旨是抽取各嵌入式系統(tǒng)圖形繪制中硬件和操作系統(tǒng)上的共性問題,屏蔽它們的差別,向上層GIS應(yīng)用程序提供簡單統(tǒng)一的圖形設(shè)備接口,從而減少開發(fā)人員在開發(fā)不同嵌入式GIS系統(tǒng)時(shí)的難度和工作量。

設(shè)計(jì)CG-GDI的目的是為了做到“一套代碼,隨處運(yùn)行”。不同軟、硬件平臺(tái)上為GIS系統(tǒng)提供的基本圖形繪制接口是不一樣的,將這些圖形繪制接口進(jìn)行封裝,向外提供一致的接口形成CG-GDI,這樣,異構(gòu)(操作系統(tǒng)和硬件不同)的嵌入式GIS應(yīng)用程序就可以調(diào)用相同的圖形繪制接口進(jìn)行GIS的開發(fā)。如果基于CG-GDI開發(fā)的GIS系統(tǒng)使用純C/C++編寫代碼,就可以達(dá)到“一套代碼,隨處運(yùn)行”的目的。

二、國內(nèi)外研究現(xiàn)狀

目前國內(nèi)外沒有專門針對(duì)嵌入式GIS系統(tǒng)開發(fā)的圖形系統(tǒng),嵌入式圖形中間件方面的產(chǎn)品只有幾個(gè)圖形GUI系統(tǒng),國內(nèi)的主要有Mini-GUI,國外比較成熟的嵌入式圖形GUI系統(tǒng)是QT/Embedded。

Mini-GUI由原清華大學(xué)教師魏永明先生開發(fā),遵循GPL條款。它是一個(gè)高效、可靠、可定制、小巧靈活的圖形用戶界面支持系統(tǒng),具有跨硬件平臺(tái)、跨操作系統(tǒng)的可移植性,主要運(yùn)行于Linux控制臺(tái),實(shí)際可以運(yùn)行在任何一種具有POSIX線程支持的POSIX兼容系統(tǒng)上。Mini-GUI最初是為了滿足一個(gè)工業(yè)控制系統(tǒng)的需求而設(shè)計(jì)和開發(fā)的,它在設(shè)計(jì)之初就考慮到了小巧、高性能和高效率,因此比較適合于工控領(lǐng)域的簡單應(yīng)用。目前Mini-GUI已廣泛應(yīng)用于手持信息終端、機(jī)頂盒、工業(yè)控制系統(tǒng)及工業(yè)儀表等產(chǎn)品和領(lǐng)域。

QT/Embedded最初是由著名的 QT庫開發(fā)商Trolltech開發(fā)的面向嵌入式系統(tǒng)的 QT版本,現(xiàn)在QT/Embedded QT可以用于Windows、Unix、Linux、嵌入式Linux和Macos X,它的主要特點(diǎn)是可移植性較好,許多基于QT的X Window程序可以非常方便地移植到嵌入式系統(tǒng)。它是一個(gè)多平臺(tái)的C++圖形用戶界面應(yīng)用程序框架,注重于能給用戶提供精美的圖形用戶界面所需要的所有元素。QT/Embedded偏重于便攜式和手持PC/Device的需求,缺點(diǎn)是代碼不對(duì)外開放。

三、CG-GDI的設(shè)計(jì)

1.CG-GDI的作用

(1)CG-GDI在嵌入式GIS中的位置

CG-GDI在嵌入式GIS中的位置如圖1所示。

圖1 CG-GDI在嵌入式GIS中的位置圖

從圖1可以看出,CG-GDI的下層是嵌入式操作系統(tǒng)和嵌入式硬件平臺(tái),上層是嵌入式GIS應(yīng)用程序和各嵌入式操作系統(tǒng)下的GUI系統(tǒng)。它是介于界面GUI和各嵌入式系統(tǒng)提供的底層繪制函數(shù)之間的一個(gè)圖形繪制具體實(shí)現(xiàn)層,它對(duì)任何嵌入式系統(tǒng)下的GIS應(yīng)用程序提供的接口都是一致的,這樣開發(fā)嵌入式GIS應(yīng)用程序時(shí)就不用再區(qū)分下層是何種操作系統(tǒng)和硬件平臺(tái)。

(2)CG-GDI與GUI的聯(lián)系和區(qū)別

CG-GDI主要包括的是點(diǎn)、線、面等的圖形繪制技術(shù),只不過它適用于不同的嵌入式軟、硬件平臺(tái),它只為嵌入式GIS系統(tǒng)提供基本繪圖功能的函數(shù)庫。

而嵌入式圖形界面GUI主要是指建立具有窗口元素及各種構(gòu)建(包括菜單、按鈕、對(duì)話框、滾動(dòng)條等)的用戶界面函數(shù)庫,它不僅包括基本的圖形繪制方法,而且還包括窗口、對(duì)話框等可視化界面資源,以及基于窗口等界面元素的消息傳遞機(jī)制等。

(3)CG-GDI的功能

CG-GDI是專為嵌入式GIS系統(tǒng)開發(fā)的圖形設(shè)備接口,其作用主要是提供嵌入式GIS繪圖方面的函數(shù)。為了滿足嵌入式GIS的繪圖需求,CG-GDI需要具備以下幾個(gè)方面的功能:① 點(diǎn)、線以及多邊形的繪制;② 橢圓和弧的繪制;③ 多邊形的填充;④橢圓和餅的填充;⑤ 文字的繪制;⑥ 位圖的繪制;⑦畫筆的設(shè)置;⑧ 畫刷的設(shè)置;⑨ 字體字大的設(shè)置;⑩繪制區(qū)域的設(shè)置。

2.CG-GDI的體系結(jié)構(gòu)

嵌入式系統(tǒng)在硬件上的差別主要在于CPU的不同,有兩個(gè)種類:PowerPC系列CPU和X86系列CPU。PowerPC是早期Motorola和IBM聯(lián)合為Apple的MAC機(jī)開發(fā)的CPU芯片,X86是一個(gè)Intel通用計(jì)算機(jī)系列的標(biāo)準(zhǔn)編號(hào)縮寫。兩者的差別是讀寫字節(jié)序的不同,PowerPC系列CPU是大端字節(jié)序的,高字節(jié)數(shù)據(jù)存放在低地址處,低字節(jié)數(shù)據(jù)存放在高地址處;X86系列CPU是小端字節(jié)序的,低字節(jié)數(shù)據(jù)存放在內(nèi)存低地址處,高字節(jié)數(shù)據(jù)存放在內(nèi)存高地址處。

嵌入式系統(tǒng)在底層軟件上的差別主要是操作系統(tǒng)的不同,現(xiàn)在流行的嵌入式操作系統(tǒng)有Vx-Works、Linux和WinCE等,不同的操作系統(tǒng)提供的底層圖形函數(shù)是不一樣的。

基于底層的嵌入式軟硬件平臺(tái),設(shè)計(jì)的CG-GDI的體系結(jié)構(gòu)如圖2所示。

圖2 嵌入式GIS圖形中間件體系結(jié)構(gòu)圖

不同的圖形API函數(shù)封裝為統(tǒng)一的接口,為上層GIS應(yīng)用提供服務(wù)。CG-GDI向下屏蔽了不同硬件平臺(tái)和操作系統(tǒng)平臺(tái)的差異,向上為用戶提供了統(tǒng)一的嵌入式GIS圖形服務(wù),大大降低了開發(fā)嵌入式GIS應(yīng)用系統(tǒng)的難度和復(fù)雜度。

四、CG-GDI的實(shí)現(xiàn)

1.CG-GDI的實(shí)現(xiàn)

整合軟硬件的差異有兩種方式:①文件庫級(jí)別的整合,所有系統(tǒng)下的庫文件都生成,上層在不同的系統(tǒng)下再調(diào)用相應(yīng)的庫;②代碼級(jí)別的整合,不同的系統(tǒng)下調(diào)用不同的函數(shù)代碼,上層只調(diào)用相應(yīng)系統(tǒng)下的代碼,編譯時(shí)不生成其他的系統(tǒng)下的庫文件。

CG-GDI實(shí)現(xiàn)的基本思路是:首先制定統(tǒng)一的嵌入式GIS圖形設(shè)備接口,不同的系統(tǒng)下調(diào)用其自身的圖形包實(shí)現(xiàn)這些圖形設(shè)備接口,其中與硬件相關(guān)的圖形設(shè)備接口(如位圖的獲取等)函數(shù)的實(shí)現(xiàn)時(shí)首先判斷是何種CPU系列,再調(diào)用不同的方式實(shí)現(xiàn);調(diào)用CD-GDI構(gòu)建嵌入式GIS應(yīng)用系統(tǒng)時(shí)只調(diào)用統(tǒng)一的圖形設(shè)備接口,但要設(shè)置嵌入式系統(tǒng)硬件標(biāo)識(shí)和操作系統(tǒng)標(biāo)識(shí),CD-GDI通過標(biāo)識(shí)來判斷是何種系列CPU和嵌入式操作系統(tǒng),從而確定使用何種方式讀寫數(shù)據(jù)和調(diào)用何種系統(tǒng)下的圖形包。

通過宏定義的方式來定義不同的嵌入式硬件和操作系統(tǒng),定義相應(yīng)的硬件宏參數(shù)和操作系統(tǒng)宏參數(shù)執(zhí)行與該硬件和操作系統(tǒng)相關(guān)的代碼。如配置文件中就可以通過#define_X86_CPU_或者#define_POWERPC_CPU_來標(biāo)識(shí)不同的硬件。

通過參考不同的操作系統(tǒng)下的圖形設(shè)備類,根據(jù)嵌入式系統(tǒng)的特點(diǎn),設(shè)計(jì)出CG-GDI的類結(jié)構(gòu),主要由以下幾個(gè)部分組成:設(shè)備環(huán)境類、畫筆類、畫刷類、字體類、圖形區(qū)域類、位圖類,如圖3所示。

圖3 CG-GDI總體類結(jié)構(gòu)圖

CG-GDI以設(shè)備環(huán)境類為中心,調(diào)用畫筆類、畫刷類、字體類、圖形區(qū)域類、位圖類等決定設(shè)備環(huán)境的狀態(tài),設(shè)備環(huán)境類再向GIS應(yīng)用提供圖形圖像的繪制功能。而不同的系統(tǒng)下,設(shè)備環(huán)境類和位圖類通過不同的方式來實(shí)現(xiàn)。

2.基于CG-GDI的GIS開發(fā)

基于CG-GDI開發(fā)嵌入式GIS的流程如圖4所示。

圖4 基于CG-GDI開發(fā)嵌入式GIS流程圖

首先要確定嵌入式操作系統(tǒng)和CPU硬件類型,再將相關(guān)參數(shù)傳進(jìn)CG-GDI對(duì)其進(jìn)行初始化,調(diào)用CG-GDI構(gòu)建地圖模塊、分析查詢模塊和軍標(biāo)模塊等GIS組件,并對(duì)各GIS組件進(jìn)行初始化,而各個(gè)嵌入式系統(tǒng)在自己的界面系統(tǒng)中調(diào)用GIS模塊和CGGDI構(gòu)建GIS系統(tǒng)。當(dāng)然,嵌入式GIS系統(tǒng)也可以不調(diào)用界面系統(tǒng),直接調(diào)用CG-GDI繪制用戶交互界面,再調(diào)用GIS模塊組成嵌入式GIS系統(tǒng)。

下面各圖是試驗(yàn)中基于CG-GDI構(gòu)建的嵌入式GIS系統(tǒng),圖5所示是VxWorks下的GIS系統(tǒng),調(diào)用了Zinc界面庫;圖6所示是Linux下沒有調(diào)用GUI系統(tǒng)構(gòu)建的GIS系統(tǒng),使用鍵盤對(duì)地圖進(jìn)行操作;圖7所示是WinCE下的GIS系統(tǒng),調(diào)用了MFC庫。

圖5 VxWorks下的GIS系統(tǒng)

圖6 Linux下的GIS系統(tǒng)

圖7 WinCE下的GIS系統(tǒng)

五、總 結(jié)

圖形是GIS的基礎(chǔ),作為通用GIS圖形基礎(chǔ)的CG-GDI適用于VxWorks、Linux和WinCE等系統(tǒng),以及PowerPC和X86系列CPU,基于CG-GDI開發(fā)的GIS系統(tǒng)不需要修改代碼就可以在這些軟硬件平臺(tái)上運(yùn)行。

本文的CG-GDI是在參考各嵌入式操作系統(tǒng)圖形設(shè)備接口的基礎(chǔ)上設(shè)計(jì)的,并且在VxWorks、嵌入式Linux和WinCE系統(tǒng)下得到了具體的實(shí)現(xiàn),具有以下幾個(gè)方面的特點(diǎn):

1)專為嵌入式GIS設(shè)計(jì)。嵌入式GIS與一般的界面程序有許多不一致的地方,雖然沒有太復(fù)雜的圖形繪制,但是每次繪制工作量都特別大,CGGDI是專為嵌入式GIS的這些特點(diǎn)設(shè)計(jì)的圖形設(shè)備接口。

2)具有方便實(shí)用的特點(diǎn)。CG-GDI在不同的硬件和操作系統(tǒng)上使用無須進(jìn)行復(fù)雜的移植,只需簡單地設(shè)置幾個(gè)參數(shù),CG-GDI就可以在不同的嵌入式GIS系統(tǒng)中使用。

3)具有較好的執(zhí)行效率。不同系統(tǒng)下CG-GDI都是基于底層系統(tǒng)函數(shù)實(shí)現(xiàn)的,沒有使用第三方開發(fā)的編程包,所以CG-GDI具有較高的執(zhí)行效率,這也能滿足嵌入式高效的要求。

4)具有易擴(kuò)展性的特點(diǎn)。雖然筆者已經(jīng)實(shí)現(xiàn)了VxWorks、Linux和WinCE系統(tǒng)下的CG-GDI,但其實(shí)CG-GDI是針對(duì)所有的嵌入式GIS系統(tǒng)的,要在其他的嵌入式操作系統(tǒng)下實(shí)現(xiàn)CG-GDI,只需繼承CG-GDI的相關(guān)虛類,具體實(shí)現(xiàn)其接口。

5)具有可裁剪的特點(diǎn)。用戶在使用CG-GDI時(shí),并不是在所有的操作系統(tǒng)下使用,可以針對(duì)特定的用戶裁剪掉多余操作系統(tǒng)下CG-GDI的實(shí)現(xiàn)。

[1] 華一新,吳升,趙軍喜.地理信息系統(tǒng)原理與技術(shù)[M].北京:解放軍出版社,2001.

[2] 羅國慶.VxWorks與嵌入式軟件開發(fā)[M].北京:機(jī)械工業(yè)出版社,2003.

[3] RIVER W.VxWorks程序員指南[M].王金剛,高偉,等譯.北京:清華大學(xué)出版社,2003.

[4] 高俊.地理空間數(shù)據(jù)的可視化[J].測繪工程,2000,9(3):

1-7.

Design and Implementation of Common GIS-GDI

LIU Xiaolin,HUA Yixin,GE Wen,ZHANG Jiangshui

0494-0911(2010)11-0058-04

P208

B

2009-11-10

劉小林(1982—),男,湖南衡陽人,博士生,主要從事GIS的研究與開發(fā)。

猜你喜歡
嵌入式設(shè)備系統(tǒng)
諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機(jī)系統(tǒng)
ZC系列無人機(jī)遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
基于MPU6050簡單控制設(shè)備
電子制作(2018年11期)2018-08-04 03:26:08
搭建基于Qt的嵌入式開發(fā)平臺(tái)
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
500kV輸變電設(shè)備運(yùn)行維護(hù)探討
原來他們都是可穿戴設(shè)備
主站蜘蛛池模板: 国产在线精品香蕉麻豆| 欧美日韩在线国产| 亚洲不卡影院| 精品视频第一页| av色爱 天堂网| 亚洲午夜国产精品无卡| 99久久精彩视频| 国产国模一区二区三区四区| 国产精品久久久久久久久| 国产精女同一区二区三区久| 99久久精品国产麻豆婷婷| 色综合婷婷| 国产高清在线精品一区二区三区 | 激情六月丁香婷婷四房播| 久久福利片| 亚洲欧美一区二区三区蜜芽| 无码AV动漫| 久久精品嫩草研究院| 97青青青国产在线播放| 日本一本在线视频| 91在线播放免费不卡无毒| 欧美在线黄| 无遮挡国产高潮视频免费观看| 五月天综合网亚洲综合天堂网| 亚洲国产成熟视频在线多多| 99久久精品视香蕉蕉| 91在线精品麻豆欧美在线| 日韩第九页| 日韩123欧美字幕| 国产91av在线| 伊人91在线| 嫩草在线视频| 欧洲极品无码一区二区三区| 国产97视频在线观看| 九色视频一区| 国产在线97| 久久精品人人做人人| 日本欧美视频在线观看| 日韩专区第一页| AV无码一区二区三区四区| 国产成人无码Av在线播放无广告| 青青青视频91在线 | 在线日韩一区二区| 午夜无码一区二区三区| 一级黄色网站在线免费看| 久久免费精品琪琪| 亚洲无线一二三四区男男| 十八禁美女裸体网站| 超碰91免费人妻| 国产福利在线免费观看| 国产成人在线无码免费视频| 亚洲国产AV无码综合原创| 精品成人一区二区| 五月综合色婷婷| 嫩草影院在线观看精品视频| 精品视频一区在线观看| 99热国产这里只有精品无卡顿"| 毛片在线播放a| 中文字幕有乳无码| 99国产精品一区二区| 欧美区国产区| 亚洲精品欧美日韩在线| 亚洲欧美h| 国产噜噜噜| 无码专区在线观看| 亚洲精品免费网站| 午夜精品一区二区蜜桃| 亚洲乱码在线视频| 国产午夜福利在线小视频| 尤物亚洲最大AV无码网站| 美女裸体18禁网站| 日韩成人午夜| 欧美a在线| 在线a视频免费观看| 国产一级毛片网站| 亚洲欧洲日产国产无码AV| 日本人妻一区二区三区不卡影院| 国产后式a一视频| 一级毛片免费观看不卡视频| 五月激情婷婷综合| 婷婷五月在线视频| 久久亚洲国产视频|