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

?

基于安卓系統(tǒng)的北斗中間件設(shè)計與實現(xiàn)

2018-01-03 01:54劉慶喜陳亮甫吳登勇柳玉巧
計算機應(yīng)用與軟件 2017年12期
關(guān)鍵詞:SIM卡中間件監(jiān)聽

劉慶喜 陳亮甫 吳登勇 柳玉巧

(山東超越數(shù)控電子有限公司 山東省特種計算機重點實驗室 山東 濟南 250109)

基于安卓系統(tǒng)的北斗中間件設(shè)計與實現(xiàn)

劉慶喜 陳亮甫 吳登勇 柳玉巧

(山東超越數(shù)控電子有限公司 山東省特種計算機重點實驗室 山東 濟南 250109)

針對安卓系統(tǒng)北斗應(yīng)用程序開發(fā)過程需修改安卓源代碼的問題,提出一種基于安卓系統(tǒng)北斗無線電測定業(yè)務(wù)中間件的實現(xiàn)方案,用以提高安卓北斗應(yīng)用程序的開發(fā)效率。北斗應(yīng)用程序根據(jù)提供的中間件接口規(guī)范,進(jìn)行中間件接口函數(shù)的調(diào)用,從而實現(xiàn)安卓移動設(shè)備與北斗衛(wèi)星相互通信。以安卓北斗SIM卡基本信息中間件開發(fā)為例,詳細(xì)介紹安卓北斗中間件開發(fā)流程,并通過安卓應(yīng)用程序調(diào)用設(shè)計的北斗SIM卡基本信息中間件接口函數(shù),獲取SIM卡北斗相關(guān)信息,從而驗證安卓北斗中間件設(shè)計的有效性。

北斗中間件 北斗無線電測定業(yè)務(wù) 安卓系統(tǒng)

0 引 言

安卓系統(tǒng)是基于 Linux開源代碼的操作系統(tǒng)。自推出以來,由于開發(fā)與應(yīng)用的成本較低、開放程度較高、便于開發(fā)等優(yōu)勢,其在移動設(shè)備得到了廣泛的應(yīng)用。隨著移動設(shè)備的使用人員對定位服務(wù)的需求大幅提高,安卓系統(tǒng)的很多應(yīng)用程序都嵌入了衛(wèi)星定位功能[1-3]。

目前,應(yīng)用最為廣泛的衛(wèi)星定位以及導(dǎo)航是美國研制的第二代衛(wèi)星導(dǎo)航系統(tǒng)GPS。該系統(tǒng)最初研制的目的是對車輛、艦船、飛機、導(dǎo)彈等各種武器進(jìn)行高精度的定位和導(dǎo)航[4]。雖然GPS已經(jīng)由軍用發(fā)展到民用、商用等各個方面,但GPS核心技術(shù)尚未開放,從而不能對其完全依賴,因此擁有自研的衛(wèi)星導(dǎo)航系統(tǒng)具有重要的意義。北斗系統(tǒng)是由中國自己研制和建設(shè)的全球衛(wèi)星定位和導(dǎo)航系統(tǒng),該系統(tǒng)很好地解決了美國GPS系統(tǒng)不能實現(xiàn)短報文通信的缺陷[5-7]。但是由于基于北斗衛(wèi)星定位系統(tǒng)的安卓應(yīng)用以及可供應(yīng)用調(diào)用的中間件接口相對較少[8-9],設(shè)計以及實現(xiàn)安卓系統(tǒng)的北斗定位與導(dǎo)航中間件接口,用于安卓應(yīng)用程序的調(diào)用和開發(fā),具有重要的實際應(yīng)用價值。

因此,本文基于開源安卓系統(tǒng)和北斗通信協(xié)議,設(shè)計以及實現(xiàn)衛(wèi)星無線電測定業(yè)務(wù)RDSS(Radio Determination Satellite Server)中間件接口函數(shù),主要包括北斗卡北斗信息、定位信息、指揮機輸出下屬及其監(jiān)聽、口令識別、短報文相互通信、自毀信息等接口,并針對安卓操作系統(tǒng)提供北斗無線電測定業(yè)務(wù)接口函數(shù)調(diào)用規(guī)范,為移動設(shè)備相互通信、北斗卡信息獲取、定位、發(fā)送指揮命令等應(yīng)用程序的開發(fā)提供便捷的系統(tǒng)底層調(diào)用方式。按照本文提供的中間件接口使用規(guī)范,應(yīng)用程序調(diào)用已在安卓系統(tǒng)移植的北斗接口函數(shù),即可實現(xiàn)應(yīng)用程序所需北斗衛(wèi)星提供的相關(guān)服務(wù)。

1 安卓系統(tǒng)北斗中間件的總體設(shè)計

安卓北斗中間件的整體設(shè)計主要內(nèi)容包括RDSS和衛(wèi)星無線電導(dǎo)航RNSS(Radio Navigationg Satellite System)[10-11]。本文主要對RDSS中間件接口的實現(xiàn)進(jìn)行了設(shè)計,并給出相應(yīng)的接口函數(shù)使用規(guī)范,供安卓系統(tǒng)應(yīng)用軟件與北斗之間通信二次開發(fā)的調(diào)用。RDSS中間件包含北斗RDSS管理類(BDRDSSManager)以及相關(guān)功能的監(jiān)聽器。

1.1 北斗中間件開發(fā)環(huán)境和主要功能

本文基于聯(lián)芯手持機設(shè)備、安卓操作系統(tǒng)的開源源碼以及Linux安卓編譯環(huán)境進(jìn)行開發(fā)實現(xiàn)。其中,安卓系統(tǒng)架構(gòu)圖如圖1所示。

圖1 安卓系統(tǒng)架構(gòu)圖

北斗中間件開發(fā)主要在Java框架層提供中間件函數(shù)接口和調(diào)用規(guī)范,并在用戶空間對發(fā)送給北斗衛(wèi)星的數(shù)據(jù)按照北斗協(xié)議進(jìn)行封裝,封裝之后通過Android系統(tǒng)的設(shè)備驅(qū)動將數(shù)據(jù)傳輸至北斗硬件模塊并進(jìn)行發(fā)送。接收北斗衛(wèi)星發(fā)送的數(shù)據(jù)過程為:平臺北斗硬件模塊接收到北斗信息后,采用回調(diào)函數(shù)的方法,通過設(shè)備驅(qū)動將其傳給用戶空間,用戶空間對接收的北斗數(shù)據(jù)進(jìn)行協(xié)議解析,并通過監(jiān)聽的方法傳輸至中間件接口,中間件函數(shù)同樣通過監(jiān)聽的方法將數(shù)據(jù)傳輸至應(yīng)用層。

安卓北斗中間件RDSS主要功能包括:支持北斗定位與GPS混合定位以及切換方式,提高定位的可用性、可靠性,滿足更高的定位導(dǎo)航要求;支持多種定位監(jiān)聽模式(定位監(jiān)聽、序列號監(jiān)聽、版本信息監(jiān)聽、反饋信息監(jiān)聽、指揮監(jiān)聽等),從而較為全面地支持實際的定位需求;支持短報文功能,能夠使北斗移動設(shè)備與北斗衛(wèi)星之間按照北斗協(xié)議進(jìn)行相互通信,該功能在定位方面有著重要的作用。

1.2 北斗RDSS模塊中間件整體框架設(shè)計

北斗RDSS模塊中間件的整體設(shè)計主要包括應(yīng)用層、框架層、中間層、驅(qū)動層以及硬件層五部分的設(shè)計,如圖2所示。

圖2 北斗RDSS整體機構(gòu)設(shè)計框架圖

應(yīng)用層的北斗應(yīng)用程序調(diào)用提供的北斗中間件接口函數(shù),實現(xiàn)實際的應(yīng)用需求;框架層設(shè)計主要用于為應(yīng)用程序提供北斗中間件調(diào)用接口;中間層設(shè)計主要根據(jù)北斗協(xié)議對所需提供的北斗中間件接口進(jìn)行程序設(shè)計,并對于框架層傳輸?shù)慕涌诤瘮?shù)按照北斗發(fā)送協(xié)議進(jìn)行封裝以及對接收的北斗命令進(jìn)行解析;驅(qū)動層設(shè)計主要用于將封裝完畢的北斗命令傳輸至北斗模塊以及接收北斗模塊傳送接收到的北斗命令;硬件層用于傳輸和接收北斗命令。

2 安卓系統(tǒng)北斗中間件的詳細(xì)設(shè)計

針對安卓系統(tǒng)的北斗中間件詳細(xì)設(shè)計,本文以獲取北斗SIM卡基本信息為例進(jìn)行闡述。首先,應(yīng)用層SIM卡測試用例程序按照中間件接口函數(shù)說明,調(diào)用框架層提供的獲取SIM卡基本信息接口函數(shù)。其次,中間層按照北斗函數(shù)協(xié)議進(jìn)行封裝,如圖3所示。然后,通過驅(qū)動層將封裝的數(shù)據(jù)傳輸?shù)接布?,通過北斗中間模塊進(jìn)行發(fā)送。當(dāng)北斗衛(wèi)星接收到SIM基本信息查詢請求時,將SIM卡基本信息進(jìn)行發(fā)送,手持機通過北斗模塊接收到SIM基本信息后,采用回調(diào)函數(shù)的方式將收到的信息通過驅(qū)動層傳輸?shù)街虚g層。中間層對接收的數(shù)據(jù)進(jìn)行解析,并通過監(jiān)聽的方式,框架層獲得解析的數(shù)據(jù)。最后,應(yīng)用層也采用監(jiān)聽的方式,獲得所需框架層解析的數(shù)據(jù),從而顯示出北斗SIM卡信息。流程圖如圖4所示。

圖3 原數(shù)據(jù)包轉(zhuǎn)換為北斗協(xié)議數(shù)據(jù)包示意圖

圖4 北斗中間件接口發(fā)送和接收北斗數(shù)據(jù)信息設(shè)計流程圖

3 安卓系統(tǒng)北斗中間件的實現(xiàn)與應(yīng)用

北斗RDSS包括北斗卡北斗信息、定位信息、指揮機輸出下屬及其監(jiān)聽、口令識別、短報文相互通信、自毀信息等中間件接口函數(shù)在安卓系統(tǒng)的實現(xiàn)方法相似。根據(jù)圖2和圖4可進(jìn)行中間件接口函數(shù)的設(shè)計和開發(fā),通過定位、SIM卡基本信息獲取應(yīng)用程序說明開發(fā)北斗中間件接口的實用性。

3.1 北斗中間件實現(xiàn)方法

下面詳述基于安卓系統(tǒng)北斗中間件開發(fā)與具體實現(xiàn)過程,并以RDSS中間件函數(shù)北斗SIM卡基本信息為例,說明中間件接口函數(shù)程序代碼的實現(xiàn)方式。

3.1.1 框架層北斗中間件實現(xiàn)方式

在安卓系統(tǒng)源碼框架層添加北斗中間件接口,提供可供上層應(yīng)用調(diào)用的北斗RDSS中間件接口函數(shù)以及接口規(guī)范。

北斗中間件SIM卡基本信息接口函數(shù)框架層的程序?qū)崿F(xiàn)方式如下所示。

public void onCardInfo(CardInfo cardInfo){

//提供北斗SIM基本信息中間件接口

}

3.1.2 中間層北斗中間件實現(xiàn)方式

中間層需要對框架層提供的北斗中間件接口函數(shù)進(jìn)行具體的實現(xiàn),封裝應(yīng)用程序需要發(fā)送的北斗命令以及解析接收到的北斗命令,并將解析后所需要的信息通過中間件接口傳送給應(yīng)用程序。

應(yīng)用發(fā)送的北斗SIM卡基本信息數(shù)據(jù)在中間層按照北斗協(xié)議進(jìn)行封裝:

//封裝獲取北斗SIM卡信息命令

public int sendAccessCardInfoCmdBDV21(int type, int frameNo){

//根據(jù)北斗協(xié)議,封裝發(fā)送的數(shù)據(jù)包

}

//監(jiān)聽及解析獲取收到的北斗SIM卡信息命令

public int AnalysisCardInfoBDV21(int type, int frameNo){

//監(jiān)聽和解析北斗SIM卡信息

}

3.1.3 驅(qū)動層北斗中間件實現(xiàn)方式

驅(qū)動層主要負(fù)責(zé)將需發(fā)送的北斗命令傳輸至北斗模塊以及將北斗模塊接收到相應(yīng)的北斗命令傳輸至中間層進(jìn)行解析。

將封裝完畢的數(shù)據(jù)包通過驅(qū)動傳輸至安卓源碼HAL層。

static int

android_location_GpsLocationProvider_send_message

(JNIEnv* env, jobject obj, jbyteArray buf, jint len)

{

/*將北斗SIM卡數(shù)據(jù)包從JNI層傳輸至HAL層*/

}

將接收到相應(yīng)的北斗命令傳輸至中間層。

static int

android_location_GpsLocationProvider_ListenAndAnalysis_message (JNIEnv* env, jobject obj, jbyteArray buf, jint len)

{

/*監(jiān)聽以及將北斗SIM卡數(shù)據(jù)包傳輸至JNI層*/

}

3.1.4 硬件層北斗中間件實現(xiàn)方式

通過HAL層將數(shù)據(jù)發(fā)給北斗衛(wèi)星以及接收北斗衛(wèi)星返回的北斗命令。

static int gps_write_message(char* msg, int len)

{

//發(fā)送和接收北斗數(shù)據(jù)至北斗衛(wèi)星

}

3.1.5 應(yīng)用層調(diào)用北斗中間件方式

應(yīng)用層采用北斗SIM卡信息獲取命令請求和解析北斗衛(wèi)星反饋的SIM卡信息的方式進(jìn)行說明。

北斗SIM卡基本信息中間件接口用例程序?qū)崿F(xiàn)如下:

sendZhiHuiCmdBt.setOnClickListener(new View.OnClickListener(){

public void onClick(View v)

{

bdRdss.sendAccessCardInfoCmdBDV21(1, 0);

}

});

通過上述北斗中間件接口函數(shù)的設(shè)計和開發(fā)方式,基于聯(lián)芯手持機安卓設(shè)備進(jìn)行北斗SIM卡中間件測試。測試結(jié)果如圖5所示。

圖5 北斗SIM卡基本信息發(fā)送數(shù)據(jù)圖

接收北斗數(shù)據(jù)信息,從圖5可以看出,在應(yīng)用程序調(diào)用RDSS中間件接口函數(shù)發(fā)送北斗SIM基本信息獲取請求時,框架層和JNI層發(fā)送符合北斗協(xié)議的封裝數(shù)據(jù)包為CCICA,0,0*4B,從而可以說明開發(fā)的RDSS北斗中間件SIM卡基本信息正常,響應(yīng)了應(yīng)用程序的請求。

接收北斗數(shù)據(jù)過程的實現(xiàn):接收過程與發(fā)送的實現(xiàn)步驟相似,根據(jù)圖4的流程圖在安卓源碼每一層次開發(fā)即可實現(xiàn)。RDSS北斗SIM卡基本信息接收中間件實現(xiàn)后,可得到的接收數(shù)據(jù)如圖6所示。

圖6 北斗SIM卡基本信息接收數(shù)據(jù)圖

發(fā)送北斗SIM卡基本信息請求后,從圖6可以獲得北斗衛(wèi)星反饋給北斗移動設(shè)備的數(shù)據(jù)為BDICI,0230098,00000000,0000011,6,60,3,N,0*38。根據(jù)北斗接口規(guī)范可知0230098為北斗SIM卡的基本卡號信息。通過對接收的北斗命令解析以及監(jiān)聽的方法,應(yīng)用程序即可獲得北斗SIM卡的基本信息,從而驗證開發(fā)的中間件的可使用性。

3.2 北斗中間件的應(yīng)用

北斗地圖定位應(yīng)用程序根據(jù)設(shè)計的北斗RDSS中間件接口函數(shù)調(diào)用規(guī)范進(jìn)行調(diào)用,顯示的位置信息和北斗模塊SIM卡信息,如圖7所示。

圖7 北斗中間件的實際應(yīng)用

從圖中可以看到,移動設(shè)備SIM卡的基本信息為0230098,當(dāng)前所在位置區(qū)域的經(jīng)度為121°27,維度信息為32°14。該應(yīng)用程序說明北斗應(yīng)用程序的開發(fā)只需調(diào)用提供的北斗中間件接口函數(shù),不需對安卓系統(tǒng)中的源碼做出相應(yīng)的修改,從而達(dá)到提高北斗應(yīng)用程序開發(fā)效率的目的。

4 結(jié) 語

本文主要對安卓操作系統(tǒng)的北斗無線電定位業(yè)務(wù)中間件接口進(jìn)行了研究,詳細(xì)闡述了中間價接口設(shè)計過程和實現(xiàn)方法。以北斗無線電定位業(yè)務(wù)SIM卡基本信息中間件開發(fā)為例:首先,根據(jù)中間件的開發(fā)流程和安卓系統(tǒng)的層析關(guān)系,設(shè)計了SIM卡基本信息中間件開發(fā)步驟;其次,在安卓操作系統(tǒng)上,按照設(shè)計步驟,進(jìn)行中間件的開發(fā);再次,采用應(yīng)用程序調(diào)用SIM卡基本信息中間件接口的方法進(jìn)行測試,并給出測試結(jié)果以及對結(jié)果進(jìn)行分析;最后,根據(jù)實際需求開發(fā)的調(diào)用北斗中間件應(yīng)用程序,說明北斗中間件開發(fā)的重要性和實際應(yīng)用價值。通過本文安卓系統(tǒng)開發(fā)的中間件,應(yīng)用開發(fā)者只需遵循中間件調(diào)用規(guī)范,即可在安卓應(yīng)用程序中實現(xiàn)北斗定位等相關(guān)功能,從而有效地提高安卓移動設(shè)備北斗應(yīng)用開發(fā)的效率。

[1] 曾健平,邵艷潔.Android 系統(tǒng)架構(gòu)及應(yīng)用程序開發(fā)研究[J].微計算機信息,2011,27(9):1-3.

[2] 龐國明,隋瑞紅.Andriod平臺GPS系統(tǒng)的應(yīng)用開發(fā)[J].電腦編程技巧與維護,2013(5):27-30.

[3] 蔣紹林,王金雙.Android安全研究綜述[J].計算機應(yīng)用與軟件,2012,29(10):205-210.

[4] Alkon R M,Karana H,Sahin M.GPS,GALILEO and GLONASS satellite navigation & GPS modemization[J].Recent Advances in SpaceTechnologies,2005(2):390-394.

[5] 安曉博.北斗/GPS雙模導(dǎo)航終端中導(dǎo)航支撐技術(shù)研究[D].重慶:重慶大學(xué),2012.

[6] 姚作新.基于北斗衛(wèi)星短信通信方式的無人值守自動氣象站網(wǎng)[J].氣象科技,2012,40(3):340-344.

[7] 中國衛(wèi)星導(dǎo)航系統(tǒng)管理辦公室.北斗衛(wèi)星導(dǎo)航系統(tǒng)空間信號接口控制文件[Z].2012-12.

[8] 常煜芬,張育平.中間件技術(shù)研究[J].計算機應(yīng)用研究,2001,18(10):21-23.

[9] 黃姝娟,杜承烈,尤濤.中間件技術(shù)實時性能的比較[J].計算機工程,2009,35(11):32-34,37.

[10] 北斗衛(wèi)星導(dǎo)航系統(tǒng)官方網(wǎng)站[OL].http://www.beidou.gov.cn/zcfg.html.

[11] 李丹,程耕國.基于Android平臺的移動增強現(xiàn)實的應(yīng)用與研究[J].計算機應(yīng)用與軟件,2015,32(1):16-19,23.

THEDESIGNANDIMPLEMENTATIONOFBEIDOUMIDDLEWAREBASEDONANDROIDSYSTEM

Liu Qingxi Chen Liangfu Wu Dengyong Liu Yuqiao

(ShandongChaoyueDigitalControlElectronicsCo.,Ltd.,ShandongSpecialComputerKeyLaboratory,Jinan250109,Shandong,China)

An implementation scheme of Beidou RDSS (Radio Determination Satellite Server) middleware functions based on Android system is proposed, in order to avoid modifying the system source code problem of Beidou application program and improve program development efficiency. When the middleware functions are invoked in the correct way, the application program could be communicated with Beidou satellite. Taking Beidou SIM card basic information middleware development as an example, we detailed the Beidou middleware development process, and through the Andrews application called the design of the Beidou SIM card basic information middleware interface function, accessed to SIM card Beidou related information to verify the effectiveness of Android Beidou middleware design.

Beidou middleware Radio determination satellite server Android system

2016-12-28。劉慶喜,碩士,主研領(lǐng)域:嵌入式系統(tǒng)開發(fā)。陳亮甫,碩士。吳登勇,高工。柳玉巧,碩士。

TP317

A

10.3969/j.issn.1000-386x.2017.12.006

猜你喜歡
SIM卡中間件監(jiān)聽
英國風(fēng)真無線監(jiān)聽耳機新貴 Cambridge Audio(劍橋)Melomania Touch
SIM卡防盜很關(guān)鍵 小喻教你如何給它“上保險”
千元監(jiān)聽風(fēng)格Hi-Fi箱新選擇 Summer audio A-401
我國自主可控中間件發(fā)展研究
SIM卡的“減肥史”
用戶將是最大受益者
RFID中間件技術(shù)及其應(yīng)用研究
網(wǎng)絡(luò)監(jiān)聽的防范措施
云計算環(huán)境下中間件的負(fù)載均衡機制研究
監(jiān)聽“有”道 ——杰夫(美國)
崇阳县| 临城县| 平昌县| 新竹县| 余姚市| 龙江县| 元阳县| 如皋市| 伊宁市| 陆河县| 林甸县| 田阳县| 杨浦区| 大邑县| 体育| 扬中市| 阆中市| 嘉峪关市| 南昌县| 泗水县| 蒙阴县| 衡阳县| 合山市| 东阿县| 临安市| 和林格尔县| 巢湖市| 南皮县| 雅江县| 阳春市| 缙云县| 平罗县| 高雄市| 南投市| 盘锦市| 突泉县| 甘德县| 福清市| 樟树市| 上虞市| 阿拉善盟|