国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

北斗數(shù)據(jù)接入中間件的設(shè)計與實(shí)現(xiàn)

2013-12-06 08:35:16譚美景王萬歷張曉楠
測繪工程 2013年3期
關(guān)鍵詞:中間件北斗定位

丁 昊,譚美景,王萬歷,張曉楠

(1.信息工程大學(xué) 測繪學(xué)院,河南 鄭州 450052;2.65015部隊(duì),遼寧 大連 116000;3.68011部隊(duì),甘肅 蘭州 730020)

作為軟件行業(yè)新興的一個分支,中間件技術(shù)越來越受到廣泛的關(guān)注。中間件的核心思想在于分層,即通過在應(yīng)用層和底層基礎(chǔ)軟件之間增加一層,來屏蔽底層軟件復(fù)雜的細(xì)節(jié),減少程序設(shè)計的復(fù)雜性。

鑒于以往的北斗應(yīng)用系統(tǒng)的設(shè)計,在數(shù)據(jù)的獲取和訪問上通常與特定的北斗硬件設(shè)備綁定在一起。對于軟件的開發(fā)人員來說,需要根據(jù)特定的北斗硬件設(shè)備開發(fā)北斗定位數(shù)據(jù)的訪問模塊,當(dāng)系統(tǒng)移植到新的硬件平臺上時,就必須重新編寫大量的北斗數(shù)據(jù)的訪問代碼。因?yàn)椴煌瑥S商的北斗設(shè)備具有不同的調(diào)用方式,更換不同的廠家的設(shè)備意味著要重新編寫大量的代碼,增加了應(yīng)用系統(tǒng)開發(fā)的復(fù)雜度和工作量。而對于軟件的最終用戶來說,已投入使用的軟件系統(tǒng)無法與新的硬件一起工作,從而無法得到硬件升級和降價帶來的好處。

基于以上分析,本文提出和設(shè)計了北斗數(shù)據(jù)接入中間件,通過對不同廠商北斗硬件設(shè)備的描述和分析,設(shè)計了一個通用的北斗數(shù)據(jù)接入具體實(shí)現(xiàn)層,從而屏蔽了北斗數(shù)據(jù)的接入、通信和傳輸細(xì)節(jié),以及北斗數(shù)據(jù)接收終端硬件的差異。對于開發(fā)人員來說減少了開發(fā)難度和工作量,對于終端用戶來說,也方便了系統(tǒng)的升級,節(jié)約了用戶的成本。

1 北斗數(shù)據(jù)中間件整體架構(gòu)的分析

1.1 傳統(tǒng)基于北斗開發(fā)應(yīng)用系統(tǒng)的方式

對于通常的基于北斗用戶機(jī)開發(fā)應(yīng)用系統(tǒng)的用戶來說,典型的研發(fā)環(huán)境如圖1所示。

圖1 北斗應(yīng)用系統(tǒng)典型研發(fā)環(huán)境

在該典型研發(fā)環(huán)境下,北斗用戶機(jī)工作的基本原理是:應(yīng)用系統(tǒng)根據(jù)功能發(fā)送相應(yīng)操作指令,北斗用戶機(jī)接收指令并處理,如果處理結(jié)果不需要返回給應(yīng)用系統(tǒng),則本次北斗應(yīng)用結(jié)束,否則北斗用戶機(jī)返回處理結(jié)果,應(yīng)用系統(tǒng)接收結(jié)果進(jìn)行業(yè)務(wù)處理完成功能,本次北斗應(yīng)用結(jié)束。

因此,這種開發(fā)方式存在的問題是,針對不同廠商的北斗用戶機(jī),開發(fā)人員都要針對性的開發(fā)一套應(yīng)用系統(tǒng),一旦用戶機(jī)設(shè)備發(fā)生變化,那么系統(tǒng)也將跟著改變,這種開發(fā)方式存在著很大的弊端。

1.2 北斗數(shù)據(jù)接入中間件的設(shè)計原則

北斗數(shù)據(jù)接入中間件是要在不同的北斗用戶機(jī)硬件平臺上運(yùn)行的統(tǒng)一的北斗數(shù)據(jù)訪問接口,其設(shè)計上不僅要考慮到怎樣向外界的應(yīng)用系統(tǒng)提供統(tǒng)一的功能接口,還要考慮到不同指揮機(jī)硬件設(shè)備數(shù)據(jù)接口的差異,所以,北斗數(shù)據(jù)接入中間件要堅持以下幾個設(shè)計原則:

1)符合需求。北斗數(shù)據(jù)接入中間件是提供給指揮監(jiān)控系統(tǒng)開發(fā)應(yīng)用的,所以最基本的原則是要滿足客戶的需求。

2)可移植性。北斗數(shù)據(jù)接入中間件必須提供統(tǒng)一的編程接口,屏蔽北斗指揮機(jī)硬件平臺的差異,這樣,指揮監(jiān)控系統(tǒng)的應(yīng)用才具有極強(qiáng)的可移植性,容易與不同的指揮機(jī)硬件配合使用。

3)穩(wěn)定性。北斗數(shù)據(jù)接入中間件的使用不能影響指揮監(jiān)控系統(tǒng)的運(yùn)行效率,且必須能保證系統(tǒng)正確穩(wěn)定的運(yùn)行。

4)可擴(kuò)充性。北斗數(shù)據(jù)接入中間件建成后會有一段較長的使用周期,在周期范圍內(nèi),應(yīng)用系統(tǒng)的功能不斷增加,應(yīng)用的層次不斷升級,因此在設(shè)計上應(yīng)充分考慮升級、擴(kuò)充的可行性和便利性。

1.3 整體結(jié)構(gòu)設(shè)計

北斗數(shù)據(jù)接入中間件在北斗應(yīng)用系統(tǒng)中所處的位置如圖2所示。

圖2 北斗數(shù)據(jù)接入中間件整體結(jié)構(gòu)設(shè)計

目前,應(yīng)用最廣泛的北斗指揮機(jī)硬件平臺主要為國星北斗指揮機(jī)和星地恒通北斗指揮機(jī),而不同的設(shè)備廠商所提供的二次開發(fā)平臺SDK是不一致的,因此,將這些不同的功能函數(shù)封裝為統(tǒng)一的北斗數(shù)據(jù)訪問接口,從而為上層的應(yīng)用系統(tǒng)提供服務(wù)。

北斗數(shù)據(jù)接入中間件向下屏蔽了不同廠商的北斗指揮機(jī)硬件平臺的差異,向上為應(yīng)用系統(tǒng)提供統(tǒng)一的北斗數(shù)據(jù)訪問服務(wù),使開發(fā)人員將注意力集中在系統(tǒng)的業(yè)務(wù)功能上,不必再為系統(tǒng)在不同硬件上的移植而重復(fù)工作,大大降低了開發(fā)成本和復(fù)雜度,也減少了系統(tǒng)維護(hù)的工作量。

2 北斗數(shù)據(jù)接入中間件詳細(xì)設(shè)計

2.1 廠商接口分析

不同廠商提供的北斗功能接口主要區(qū)別在于接口的命名和參數(shù)的傳遞上,完成的主要功能大體相同,主要有以下5個功能:

1)設(shè)備初始化。該接口一般在系統(tǒng)初始化的時候調(diào)用,現(xiàn)有的北斗指揮機(jī)硬件都是基于串口通信,通過該接口完成串口的打開,以及一些相關(guān)參數(shù)的設(shè)置,如:設(shè)置注冊數(shù)據(jù)收發(fā)的窗口,或者設(shè)置數(shù)據(jù)接收的回調(diào)函數(shù)接口。

2)定位申請。北斗系統(tǒng)其中一項(xiàng)最大的功能就是申請定位數(shù)據(jù),傳遞包括入站波束號、定位類別、入站頻度等參數(shù)。系統(tǒng)通過調(diào)用定位申請接口向北斗硬件設(shè)備請求定位數(shù)據(jù),硬件設(shè)備通過系統(tǒng)回調(diào)函數(shù)或者消息的方式把用戶當(dāng)前位置發(fā)送給用戶系統(tǒng)。

3)通信申請。通信申請是完成北斗用戶機(jī)向其他用戶機(jī)通信的功能,通過向北斗硬件設(shè)備發(fā)送通信申請命令完成通信,主要包括入站波束號、通信類別、通信信息類型、編碼方式、接收方用戶地址以及通信內(nèi)容等參數(shù)。

4)授時申請。主要完成標(biāo)準(zhǔn)時間的獲取。

5)設(shè)備自毀。該接口用于收發(fā)管理模塊的銷毀,釋放資源,通常在程序退出時調(diào)用。

2.2 北斗數(shù)據(jù)接入中間件接口設(shè)計

北斗數(shù)據(jù)接入中間件是專為指揮監(jiān)控系統(tǒng)開發(fā)的數(shù)據(jù)訪問接口,其作用主要是提供指揮監(jiān)控業(yè)務(wù)過程中的功能函數(shù)。為了滿足實(shí)際的應(yīng)用需求,根據(jù)前一節(jié)的分析,北斗數(shù)據(jù)接入中間件應(yīng)具備以下幾個方面的功能:北斗設(shè)備打開、用戶信息請求、定位請求、通信請求、查詢請求、北斗設(shè)備關(guān)閉、設(shè)備自銷毀。

兩家北斗系統(tǒng)硬件供應(yīng)廠商雖然在提供的二次開發(fā)接口上有很大差別,例如:國星公司的定位申請、通信申請以及授時服務(wù)都是調(diào)用同一接口,通過傳遞參數(shù)的類型來判斷不同的申請命令,完成相應(yīng)的功能。而星地恒通公司提供的接口則是按照具體的業(yè)務(wù)功能來劃分。而且兩家公司的回調(diào)方式也是有很大區(qū)別的,因此,如何設(shè)計一套統(tǒng)一的接口針向上為系統(tǒng)應(yīng)用層屏蔽底層的實(shí)現(xiàn)細(xì)節(jié),向下對各家平臺都能提供支持和擴(kuò)展是中間件設(shè)計的關(guān)鍵。

類的設(shè)計結(jié)構(gòu)圖如圖3所示。

圖3 北斗數(shù)據(jù)接入中間件接口設(shè)計

中間件的接口定義主要包括兩部分,即命令發(fā)送接口(IC_BDRequest)與業(yè)務(wù)邏輯功能回調(diào)接口(IC_BDRespond)。其中命令發(fā)送接口由中間件層實(shí)現(xiàn),而業(yè)務(wù)邏輯功能回調(diào)接口具體實(shí)現(xiàn)是在業(yè)務(wù)系統(tǒng)中,因?yàn)椴煌臉I(yè)務(wù)系統(tǒng)針對不同業(yè)務(wù)完成的功能不一樣,因此,業(yè)務(wù)邏輯回調(diào)接口由業(yè)務(wù)系統(tǒng)實(shí)現(xiàn),中間件通過業(yè)務(wù)邏輯功能回調(diào)接口通知系統(tǒng)完成相應(yīng)功能。

2.2.1 IC_BDRequst接口

IC_BDRequest接口中定義了8個函數(shù),圖3中上方的4個結(jié)構(gòu)體是請求接口用到的4個打包參數(shù),接口定義函數(shù)描述如下:

openDevice函數(shù)是設(shè)備打開函數(shù),完成北斗硬件系統(tǒng)的打開以及初始化工作,傳遞的參數(shù)結(jié)構(gòu)設(shè)備信息tagDevinfo,其中,port表示連接串口號;baud表示傳輸波特率;config表示設(shè)備配置信息(也可用于擴(kuò)展傳遞其他類型的信息,比如接入其他種類的設(shè)備或者模擬器之類)。

respondCall函數(shù)是注冊回調(diào)對象,前面已經(jīng)講過回調(diào)對象接口是由業(yè)務(wù)系統(tǒng)實(shí)現(xiàn),在系統(tǒng)初始化的時候,調(diào)用該函數(shù)注冊對象。

requestICinfo函數(shù)是查詢當(dāng)前用戶機(jī)的IC卡信息。

requestPosinfo函數(shù)是申請定位函數(shù),申請當(dāng)前用戶的位置,其中定位申請數(shù)據(jù)結(jié)構(gòu)為tagDwsq。結(jié)構(gòu)中urgency表示是否緊急定位;infoType表示信息類別,0表示有高程,1表示無測高;hbH表示海拔高度;antennaH表示天線高度;freq表示入站頻度,單位為s,0時為單次入站,否則為連續(xù)定位。

requestCommunication函數(shù)是申請通信函數(shù),向其他用戶機(jī)發(fā)送通信內(nèi)容,如果當(dāng)前是用戶指揮機(jī)也可以向下轄機(jī)廣播通信內(nèi)容。通信申請參數(shù)數(shù)據(jù)結(jié)構(gòu)為tagTxsq。其中,posthaste表示是否為特快通信;bcd表示是否為BCD編碼方式;bResponse表示是否應(yīng)答,0為否,1為是;srcID表示發(fā)送信息源的卡號;destID表示目標(biāo)機(jī)的卡號,如果使用的是指揮卡,且該地址為通播地址,則為廣播,下轄用戶均可收到;content表示電文內(nèi)容。

requstQuery函數(shù)是申請查詢函數(shù),查詢目標(biāo)機(jī)的位置或者通信信息等內(nèi)容。查詢申請數(shù)據(jù)結(jié)構(gòu)為tagQuery。其中,destID表示被查詢的目標(biāo)機(jī)的卡號;type表示查詢類別,0為定位,1為通信;para定位查詢時表示“定位次數(shù)”,00為1次,01為2次,02為3次,通信查詢時表示“查詢方式”,00為最新查詢,01為按發(fā)送方地址查詢,02為回執(zhí)。

2.2.2 IC_BDRespond接口

IC_BDRespond的接口定義主要針對業(yè)務(wù)系統(tǒng)的業(yè)務(wù)需求來定制,比如本實(shí)驗(yàn)系統(tǒng)主要針對北斗用戶機(jī)的信息獲取,北斗定位申請以及北斗通信3個業(yè)務(wù)功能有需求,因此設(shè)計3個函數(shù)完成相應(yīng)的功能。

respondICinfo函數(shù)響應(yīng)查詢IC卡信息請求,返回參數(shù)中用戶IC卡信息數(shù)據(jù)結(jié)構(gòu)為tagICinfo。其中,localID表示本機(jī)IC卡卡號;broadcastID表示通播地址;freq表示入站頻度;userNum表示下轄機(jī)個數(shù);userIDs表示下轄機(jī)卡號。

respondPosinfo函數(shù)響應(yīng)查詢用戶的位置信息,返回參數(shù)中定位信息數(shù)據(jù)結(jié)構(gòu)為tagPosinfo。其中,bQuery表示是否被查詢;id表示定位信息的卡號;lTime表示定位時間;dL表示經(jīng)度;dB表示緯度;iH表示高程。

respondCommuinfo函數(shù)響應(yīng)用戶通信的信息,當(dāng)有用戶向本機(jī)通信時會被調(diào)用,返回參數(shù)中通信信息數(shù)據(jù)結(jié)構(gòu)為tagCommuinfo。其中,bQuery表示是否被查詢;sendID表示發(fā)送方卡號;inceptID表示接收方卡號;lTime表示通信時間;bBCD表示是否為BCD編碼方式;len表示通信內(nèi)容長度;szContent表示通信內(nèi)容。

3 北斗數(shù)據(jù)接入中間件交互流程

北斗數(shù)據(jù)接入中間件的工作流程如圖4所示。

圖4 北斗數(shù)據(jù)接入中間件工作流程

在確定北斗指揮機(jī)硬件類型的基礎(chǔ)上,將相關(guān)參數(shù)傳入北斗數(shù)據(jù)接入中間件對其進(jìn)行初始化,同時系統(tǒng)調(diào)用中間件接口IC_BDRequest中的respondCall函數(shù)設(shè)置系統(tǒng)實(shí)現(xiàn)的業(yè)務(wù)邏輯回調(diào)對象,該對象實(shí)現(xiàn)了IC_BDRespond接口。當(dāng)需要完成某一業(yè)務(wù)功能時,系統(tǒng)調(diào)用中間件的IC_BDRequest的接口,并發(fā)送相應(yīng)的命令請求數(shù)據(jù),經(jīng)過北斗系統(tǒng)處理后,中間件調(diào)用IC_BDRespond接口,接收響應(yīng)的信息數(shù)據(jù),并完成IC_BDRespond的功能。

4 結(jié)束語

綜上所述,本文主要綜合分析了幾家北斗指揮機(jī)的數(shù)據(jù)接口的描述,提出并設(shè)計了北斗數(shù)據(jù)接入中間件的接口結(jié)構(gòu)以及存儲傳遞的數(shù)據(jù)結(jié)構(gòu),該結(jié)構(gòu)基本包容了北斗指揮機(jī)數(shù)據(jù)接口的描述,功能全面且易于使用。

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

[2]Erich Gamma,Richard Helm,Ralph Johnson,等.設(shè)計模式:可復(fù)用面向?qū)ο筌浖幕A(chǔ)[M].李英軍,馬曉星,蔡敏,等譯.北京:機(jī)械工業(yè)出版社,2000.

[3]袁力.基于北斗衛(wèi)星技術(shù)的軍交運(yùn)輸指揮系統(tǒng)關(guān)鍵技術(shù)研究[D].吉林:吉林大學(xué),2009.

[4]武麗麗,華一新,陳艷麗,等.基于“北斗一號”虛擬機(jī)管理型用戶機(jī)系統(tǒng)的設(shè)計與實(shí)現(xiàn)[J].測繪科學(xué),2011,36(6):227-229.

[5]武麗麗,華一新,張亞軍,等.“北斗一號”監(jiān)控管理網(wǎng)設(shè)計與實(shí)現(xiàn)[J].測繪科學(xué),2008,33(5):7-9.

[6]張習(xí)國,劉建.基于北斗導(dǎo)航系統(tǒng)的移動監(jiān)控管理系統(tǒng)研究[J].武漢理工大學(xué)學(xué)報:信息與管理工程版,2005,27(5):63-65.

猜你喜歡
中間件北斗定位
北斗和它的N種變身
軍事文摘(2023年20期)2023-10-31 08:42:08
北斗時鐘盤
《導(dǎo)航定位與授時》征稿簡則
Smartrail4.0定位和控制
“北斗”離我們有多遠(yuǎn)
RFID中間件技術(shù)及其應(yīng)用研究
電子制作(2018年14期)2018-08-21 01:38:10
基于VanConnect中間件的設(shè)計與開發(fā)
電子測試(2018年10期)2018-06-26 05:54:02
找準(zhǔn)定位 砥礪前行
中國的北斗 世界的北斗
太空探索(2016年3期)2016-07-12 09:58:47
青年擇業(yè)要有準(zhǔn)確定位
普定县| 米脂县| 嘉义县| 新河县| 沭阳县| 进贤县| 嘉荫县| 南郑县| 金乡县| 板桥市| 大新县| 阿鲁科尔沁旗| 兰西县| 云南省| 通海县| 顺义区| 土默特右旗| 华亭县| 城步| 玉田县| 教育| 罗城| 定安县| 漳浦县| 化隆| 日土县| 百色市| 长汀县| 德令哈市| 林周县| 浦东新区| 治多县| 太湖县| 离岛区| 通城县| 溧水县| 莱芜市| 菏泽市| 桐梓县| 南投县| 安塞县|