APP下载

基于安卓系统的北斗中间件设计与实现

2018-01-03刘庆喜陈亮甫吴登勇柳玉巧

计算机应用与软件 2017年12期
关键词:SIM卡中间件监听

刘庆喜 陈亮甫 吴登勇 柳玉巧

(山东超越数控电子有限公司 山东省特种计算机重点实验室 山东 济南 250109)

基于安卓系统的北斗中间件设计与实现

刘庆喜 陈亮甫 吴登勇 柳玉巧

(山东超越数控电子有限公司 山东省特种计算机重点实验室 山东 济南 250109)

针对安卓系统北斗应用程序开发过程需修改安卓源代码的问题,提出一种基于安卓系统北斗无线电测定业务中间件的实现方案,用以提高安卓北斗应用程序的开发效率。北斗应用程序根据提供的中间件接口规范,进行中间件接口函数的调用,从而实现安卓移动设备与北斗卫星相互通信。以安卓北斗SIM卡基本信息中间件开发为例,详细介绍安卓北斗中间件开发流程,并通过安卓应用程序调用设计的北斗SIM卡基本信息中间件接口函数,获取SIM卡北斗相关信息,从而验证安卓北斗中间件设计的有效性。

北斗中间件 北斗无线电测定业务 安卓系统

0 引 言

安卓系统是基于 Linux开源代码的操作系统。自推出以来,由于开发与应用的成本较低、开放程度较高、便于开发等优势,其在移动设备得到了广泛的应用。随着移动设备的使用人员对定位服务的需求大幅提高,安卓系统的很多应用程序都嵌入了卫星定位功能[1-3]。

目前,应用最为广泛的卫星定位以及导航是美国研制的第二代卫星导航系统GPS。该系统最初研制的目的是对车辆、舰船、飞机、导弹等各种武器进行高精度的定位和导航[4]。虽然GPS已经由军用发展到民用、商用等各个方面,但GPS核心技术尚未开放,从而不能对其完全依赖,因此拥有自研的卫星导航系统具有重要的意义。北斗系统是由中国自己研制和建设的全球卫星定位和导航系统,该系统很好地解决了美国GPS系统不能实现短报文通信的缺陷[5-7]。但是由于基于北斗卫星定位系统的安卓应用以及可供应用调用的中间件接口相对较少[8-9],设计以及实现安卓系统的北斗定位与导航中间件接口,用于安卓应用程序的调用和开发,具有重要的实际应用价值。

因此,本文基于开源安卓系统和北斗通信协议,设计以及实现卫星无线电测定业务RDSS(Radio Determination Satellite Server)中间件接口函数,主要包括北斗卡北斗信息、定位信息、指挥机输出下属及其监听、口令识别、短报文相互通信、自毁信息等接口,并针对安卓操作系统提供北斗无线电测定业务接口函数调用规范,为移动设备相互通信、北斗卡信息获取、定位、发送指挥命令等应用程序的开发提供便捷的系统底层调用方式。按照本文提供的中间件接口使用规范,应用程序调用已在安卓系统移植的北斗接口函数,即可实现应用程序所需北斗卫星提供的相关服务。

1 安卓系统北斗中间件的总体设计

安卓北斗中间件的整体设计主要内容包括RDSS和卫星无线电导航RNSS(Radio Navigationg Satellite System)[10-11]。本文主要对RDSS中间件接口的实现进行了设计,并给出相应的接口函数使用规范,供安卓系统应用软件与北斗之间通信二次开发的调用。RDSS中间件包含北斗RDSS管理类(BDRDSSManager)以及相关功能的监听器。

1.1 北斗中间件开发环境和主要功能

本文基于联芯手持机设备、安卓操作系统的开源源码以及Linux安卓编译环境进行开发实现。其中,安卓系统架构图如图1所示。

图1 安卓系统架构图

北斗中间件开发主要在Java框架层提供中间件函数接口和调用规范,并在用户空间对发送给北斗卫星的数据按照北斗协议进行封装,封装之后通过Android系统的设备驱动将数据传输至北斗硬件模块并进行发送。接收北斗卫星发送的数据过程为:平台北斗硬件模块接收到北斗信息后,采用回调函数的方法,通过设备驱动将其传给用户空间,用户空间对接收的北斗数据进行协议解析,并通过监听的方法传输至中间件接口,中间件函数同样通过监听的方法将数据传输至应用层。

安卓北斗中间件RDSS主要功能包括:支持北斗定位与GPS混合定位以及切换方式,提高定位的可用性、可靠性,满足更高的定位导航要求;支持多种定位监听模式(定位监听、序列号监听、版本信息监听、反馈信息监听、指挥监听等),从而较为全面地支持实际的定位需求;支持短报文功能,能够使北斗移动设备与北斗卫星之间按照北斗协议进行相互通信,该功能在定位方面有着重要的作用。

1.2 北斗RDSS模块中间件整体框架设计

北斗RDSS模块中间件的整体设计主要包括应用层、框架层、中间层、驱动层以及硬件层五部分的设计,如图2所示。

图2 北斗RDSS整体机构设计框架图

应用层的北斗应用程序调用提供的北斗中间件接口函数,实现实际的应用需求;框架层设计主要用于为应用程序提供北斗中间件调用接口;中间层设计主要根据北斗协议对所需提供的北斗中间件接口进行程序设计,并对于框架层传输的接口函数按照北斗发送协议进行封装以及对接收的北斗命令进行解析;驱动层设计主要用于将封装完毕的北斗命令传输至北斗模块以及接收北斗模块传送接收到的北斗命令;硬件层用于传输和接收北斗命令。

2 安卓系统北斗中间件的详细设计

针对安卓系统的北斗中间件详细设计,本文以获取北斗SIM卡基本信息为例进行阐述。首先,应用层SIM卡测试用例程序按照中间件接口函数说明,调用框架层提供的获取SIM卡基本信息接口函数。其次,中间层按照北斗函数协议进行封装,如图3所示。然后,通过驱动层将封装的数据传输到硬件层,通过北斗中间模块进行发送。当北斗卫星接收到SIM基本信息查询请求时,将SIM卡基本信息进行发送,手持机通过北斗模块接收到SIM基本信息后,采用回调函数的方式将收到的信息通过驱动层传输到中间层。中间层对接收的数据进行解析,并通过监听的方式,框架层获得解析的数据。最后,应用层也采用监听的方式,获得所需框架层解析的数据,从而显示出北斗SIM卡信息。流程图如图4所示。

图3 原数据包转换为北斗协议数据包示意图

图4 北斗中间件接口发送和接收北斗数据信息设计流程图

3 安卓系统北斗中间件的实现与应用

北斗RDSS包括北斗卡北斗信息、定位信息、指挥机输出下属及其监听、口令识别、短报文相互通信、自毁信息等中间件接口函数在安卓系统的实现方法相似。根据图2和图4可进行中间件接口函数的设计和开发,通过定位、SIM卡基本信息获取应用程序说明开发北斗中间件接口的实用性。

3.1 北斗中间件实现方法

下面详述基于安卓系统北斗中间件开发与具体实现过程,并以RDSS中间件函数北斗SIM卡基本信息为例,说明中间件接口函数程序代码的实现方式。

3.1.1 框架层北斗中间件实现方式

在安卓系统源码框架层添加北斗中间件接口,提供可供上层应用调用的北斗RDSS中间件接口函数以及接口规范。

北斗中间件SIM卡基本信息接口函数框架层的程序实现方式如下所示。

public void onCardInfo(CardInfo cardInfo){

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

}

3.1.2 中间层北斗中间件实现方式

中间层需要对框架层提供的北斗中间件接口函数进行具体的实现,封装应用程序需要发送的北斗命令以及解析接收到的北斗命令,并将解析后所需要的信息通过中间件接口传送给应用程序。

应用发送的北斗SIM卡基本信息数据在中间层按照北斗协议进行封装:

//封装获取北斗SIM卡信息命令

public int sendAccessCardInfoCmdBDV21(int type, int frameNo){

//根据北斗协议,封装发送的数据包

}

//监听及解析获取收到的北斗SIM卡信息命令

public int AnalysisCardInfoBDV21(int type, int frameNo){

//监听和解析北斗SIM卡信息

}

3.1.3 驱动层北斗中间件实现方式

驱动层主要负责将需发送的北斗命令传输至北斗模块以及将北斗模块接收到相应的北斗命令传输至中间层进行解析。

将封装完毕的数据包通过驱动传输至安卓源码HAL层。

static int

android_location_GpsLocationProvider_send_message

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

{

/*将北斗SIM卡数据包从JNI层传输至HAL层*/

}

将接收到相应的北斗命令传输至中间层。

static int

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

{

/*监听以及将北斗SIM卡数据包传输至JNI层*/

}

3.1.4 硬件层北斗中间件实现方式

通过HAL层将数据发给北斗卫星以及接收北斗卫星返回的北斗命令。

static int gps_write_message(char* msg, int len)

{

//发送和接收北斗数据至北斗卫星

}

3.1.5 应用层调用北斗中间件方式

应用层采用北斗SIM卡信息获取命令请求和解析北斗卫星反馈的SIM卡信息的方式进行说明。

北斗SIM卡基本信息中间件接口用例程序实现如下:

sendZhiHuiCmdBt.setOnClickListener(new View.OnClickListener(){

public void onClick(View v)

{

bdRdss.sendAccessCardInfoCmdBDV21(1, 0);

}

});

通过上述北斗中间件接口函数的设计和开发方式,基于联芯手持机安卓设备进行北斗SIM卡中间件测试。测试结果如图5所示。

图5 北斗SIM卡基本信息发送数据图

接收北斗数据信息,从图5可以看出,在应用程序调用RDSS中间件接口函数发送北斗SIM基本信息获取请求时,框架层和JNI层发送符合北斗协议的封装数据包为CCICA,0,0*4B,从而可以说明开发的RDSS北斗中间件SIM卡基本信息正常,响应了应用程序的请求。

接收北斗数据过程的实现:接收过程与发送的实现步骤相似,根据图4的流程图在安卓源码每一层次开发即可实现。RDSS北斗SIM卡基本信息接收中间件实现后,可得到的接收数据如图6所示。

图6 北斗SIM卡基本信息接收数据图

发送北斗SIM卡基本信息请求后,从图6可以获得北斗卫星反馈给北斗移动设备的数据为BDICI,0230098,00000000,0000011,6,60,3,N,0*38。根据北斗接口规范可知0230098为北斗SIM卡的基本卡号信息。通过对接收的北斗命令解析以及监听的方法,应用程序即可获得北斗SIM卡的基本信息,从而验证开发的中间件的可使用性。

3.2 北斗中间件的应用

北斗地图定位应用程序根据设计的北斗RDSS中间件接口函数调用规范进行调用,显示的位置信息和北斗模块SIM卡信息,如图7所示。

图7 北斗中间件的实际应用

从图中可以看到,移动设备SIM卡的基本信息为0230098,当前所在位置区域的经度为121°27,维度信息为32°14。该应用程序说明北斗应用程序的开发只需调用提供的北斗中间件接口函数,不需对安卓系统中的源码做出相应的修改,从而达到提高北斗应用程序开发效率的目的。

4 结 语

本文主要对安卓操作系统的北斗无线电定位业务中间件接口进行了研究,详细阐述了中间价接口设计过程和实现方法。以北斗无线电定位业务SIM卡基本信息中间件开发为例:首先,根据中间件的开发流程和安卓系统的层析关系,设计了SIM卡基本信息中间件开发步骤;其次,在安卓操作系统上,按照设计步骤,进行中间件的开发;再次,采用应用程序调用SIM卡基本信息中间件接口的方法进行测试,并给出测试结果以及对结果进行分析;最后,根据实际需求开发的调用北斗中间件应用程序,说明北斗中间件开发的重要性和实际应用价值。通过本文安卓系统开发的中间件,应用开发者只需遵循中间件调用规范,即可在安卓应用程序中实现北斗定位等相关功能,从而有效地提高安卓移动设备北斗应用开发的效率。

[1] 曾健平,邵艳洁.Android 系统架构及应用程序开发研究[J].微计算机信息,2011,27(9):1-3.

[2] 庞国明,隋瑞红.Andriod平台GPS系统的应用开发[J].电脑编程技巧与维护,2013(5):27-30.

[3] 蒋绍林,王金双.Android安全研究综述[J].计算机应用与软件,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].重庆:重庆大学,2012.

[6] 姚作新.基于北斗卫星短信通信方式的无人值守自动气象站网[J].气象科技,2012,40(3):340-344.

[7] 中国卫星导航系统管理办公室.北斗卫星导航系统空间信号接口控制文件[Z].2012-12.

[8] 常煜芬,张育平.中间件技术研究[J].计算机应用研究,2001,18(10):21-23.

[9] 黄姝娟,杜承烈,尤涛.中间件技术实时性能的比较[J].计算机工程,2009,35(11):32-34,37.

[10] 北斗卫星导航系统官方网站[OL].http://www.beidou.gov.cn/zcfg.html.

[11] 李丹,程耕国.基于Android平台的移动增强现实的应用与研究[J].计算机应用与软件,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。刘庆喜,硕士,主研领域:嵌入式系统开发。陈亮甫,硕士。吴登勇,高工。柳玉巧,硕士。

TP317

A

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

猜你喜欢

SIM卡中间件监听
英国风真无线监听耳机新贵 Cambridge Audio(剑桥)Melomania Touch
SIM卡防盗很关键 小喻教你如何给它“上保险”
千元监听风格Hi-Fi箱新选择 Summer audio A-401
我国自主可控中间件发展研究
SIM卡的“减肥史”
用户将是最大受益者
RFID中间件技术及其应用研究
网络监听的防范措施
云计算环境下中间件的负载均衡机制研究
监听“有”道 ——杰夫(美国)