一种基于Linux的LTE网关处理AT指令的方法技术

技术编号:13334535 阅读:53 留言:0更新日期:2016-07-12 09:46
本发明专利技术公开了一种基于Linux的LTE网关处理AT指令的方法,包括:在用户App与RIL之间设置消息路由层;并分别建接收请求消息队列和回复请求消息队列;用户App发送请求消息到接收请求消息队列,并为每个请求消息生成唯一处理标识发给RIL;RIL将请求消息添加到RIL请求列表中,转换为AT指令,下发AT指令,等待返回结果;RIL根据是否下发过AT指令对返回结果进行分别处理,为其添加唯一处理标识或URC消息类型id后封装为返回消息;消息路由层根据唯一处理标识或URC消息类型id将返回消息发送到目的APP。本发明专利技术将接收请求消息和回复请求消息分开进行处理,互不影响,实现对多用户请求的AT指令进行处理。

【技术实现步骤摘要】

本专利技术涉及LTE(Long Term Evolut1n)网关,具体涉及。
技术介绍
随着移动互联网的快速发展,LTE的价值在全球得到了广泛认可,LTECPE(Customer Premises Equipment,用户室内设备)迎来了新一轮的发展机遇。目前,很多LTECPE的硬件架构都是采用两个处理器:一个处理器用来运行操作系统和应用程序,称之为Applicat1n Processor,简称AP;另外一个用来处理和射频无线通信相关的工作,称之为Baseband Processor,简称BP;AP和BP之间采用串口设备进行通信,使用的通信协议为AT指令。AT指令是以AT作首,字符结束的字符串,响应数据包在中。每个指令执行成功与否都有相应的返回,即经过请求的回复(solicited response)和未经请求的回复(unsolicited response,如收到短信、线路无信号等),接收端根据相应的信息提示对AT指令做相应的处理。因此,现有AT指令的处理技术只能与单一用户通讯,满足单个用户需求,无法同时完成多用户请求响应,发送AT指令,处理经过请求的回复和未经请求的回复。
技术实现思路
本专利技术所要解决的技术问题是现有AT指令的处理技术无法满足多用户请求下发送AT指令,处理经过请求的回复和未经请求的回复的问题。为了解决上述技术问题,本专利技术所采用的技术方案是提供,包括以下步骤:步骤100、在用户App与RIL之间设置消息路由层;并针对接收用户App请求和回复用户App请求消息分别创建接收请求消息队列和回复请求消息队列;步骤200、每个用户App发送请求消息到接收请求消息队列,消息路由层依次对接收请求消息队列中的请求消息进行处理,并为每个请求消息生成唯一处理标识发送给RIL;步骤300、当RIL接收到消息路由层发送的请求消息后,将请求消息添加到RIL请求列表中等待处理,RIL调用相应的回调函数,将请求消息转换为AT指令,下发AT指令,并等待返回结果;步骤400、RIL根据是否下发过AT指令对返回结果进行分别处理,为返回结果添加对应的请求消息唯一处理标识或URC消息类型id,并封装为返回消息发送给消息路由层;步骤500、消息路由层根据返回消息的唯一处理标识或URC消息类型id判断该返回消息发送的目的APP,将返回消息发送到回复请求消息队列等待发送到相应的目的APP。在上述方法中,所述消息路由层与所述RIL之间通过socket通信。在上述方法中,所述请求消息包括App id、请求id和消息体,其中,App id用于标示消息的源地址,在回复请求时用于回复请求消息队列区分消息类型,请求id和消息体将用于RIL构建AT指令发送给LTE模块;在List中,每一表项包括App id、请求id、消息体和作为索引唯一处理标识。在上述方法中,步骤200具体包括以下步骤:步骤201、监听接收消息队列是否接收到App请求消息;步骤202、接收请求消息队列依次请求消息,并进行处理;步骤203、为每个请求消息生成唯一处理标识,并以该处理标识为索引将请求消息保存在请求消息列表中;步骤204、将请求消息写入与RIL连接的socket中;步骤205、通过socket客户端将请求消息发送给RIL。在上述方法中,步骤300具体包括以下步骤:步骤301、RIL的socket端监听socket客户端的连接请求;步骤302、在接收到连接请求后,处理连接请求,与消息路由层的socket客户端建立起消息通信通路;步骤303、RIL的socket端监听socket客户端发送的请求消息; 步骤3 O 4、将请求消息添加到RIL请求列表当中,并根据该请求消息的请求i d调用相应的回调函数进行处理;步骤305、解析请求消息并转化为相应的AT指令,获取线程锁之后下发AT指令,并调用条件等待函数等待返回结果。在上述方法中,步骤400具体包括以下步骤:步骤401、RIL中的读线程一直轮询LTE模块串口,等待返回结果数据;步骤402、当接收到返回结果,判断该结果是否主动下发过AT指令,若果有执行步骤403 ;否则执行步骤407 ;步骤403、对读取的返回结果数据报头逐行进行解析,比较读取数据的报头与下发AT指令期望回复的报头是否一致,若一致,执行步骤404;否则丢弃,执行步骤401;步骤404、将串口读取的数据保存到自定义链表中,继续处理下一行返回结果数据,当读取到AT指令返回结束字符时,读线程通过条件信号函数发送信号给事件处理线程;步骤405、事件处理线程结束等待并获取线程锁,获得保存在自定义链表中的返回结果数据;步骤406、对返回结果数据进行逐字符串拆分处理,封装为带有对应请求消息的唯一处理标识的返回消息,发送给消息路由层;步骤407、将返回结果数据的报头逐个与程序预置的AT指令报头比较,从而判断上报的URC消息类型;步骤408、然后逐字段解析返回结果,封装为带有URC消息类型id的返回消息,通过socket发送给消息路由层。在上述方法中,步骤500具体包括以下步骤:步骤501、消息路由层socket客户端监听返回消息返回;步骤502、监听到返回消息后,判断是否为URC消息,若不是,执行步骤503;否则执行步骤505;步骤503、根据唯一处理标识遍历请求消息列表,给返回消息添加包含对应App id和请求id的消息报头,并将对应表项从请求消息列表移除;步骤504、将添加消息报头后的返回消息写入回复请求消息队列,等待发送目的App,然后结束程序;步骤505、消息路由层根据URC消息类型id决定该消息发送的目的App,并在添加该目的App的源App id的报头后写入回复请求消息队列,等待发送目的App,然后结束程序。本专利技术在用户App与RIL之间引入了消息路由层;并在消息路由层针对接收用户App请求和回复用户App请求消息分别创建了接收请求消息队列和回复请求消息队列,将接收请求消息和回复请求消息分开进行处理,互不影响,同时满足对多用户请求的AT指令进行处理;并通过唯一处理标识使得每次回复都能准确的回传给请求者,实现同时处理经过请求的回复和未经请求的回复。【附图说明】图1为本专利技术提供的的架构图;图2为本专利技术中消息路由层处理请求消息流程图;图3为本专利技术中RIL处理请求消息流程图;图4为本专利技术中RIL处理返回结果流程图;图5为本专利技术中消息路由层处理返回消息流程图。【具体实施方式】下面结合说明书附图和具体实施例对本专利技术做出详细的说明。如图1所示,为本专利技术提供的的架构图,与现有AT指令处理架构相比,本专利技术为了满足多用户并发请求,在用户ApplO与RIL30(Rad1 Interface Layer,无线介面层)之间引入了消息路由层20;消息路由层20针对接收用户App请求和回复用户App请求消息分别创建了接收请求消息队列21和回复请求消息队列22,将接收请求消息和回复请求消息分开进行处理,互不影响,并在与RIL连接端,创建与RIL端socket31连接的socket客户端23。每个用户A卯发送请求消息到接收请求消息队列21,消息路由层20依次对接收请求消息队列21中的请求消息进行处理,为每个请求消息生成唯一处理标识,以便对每个请求消息进行区分,并以该唯一处本文档来自技高网...

【技术保护点】
一种基于Linux的LTE网关处理AT指令的方法,其特征在于,包括以下步骤:步骤100、在用户App与RIL之间设置消息路由层;并针对接收用户App请求和回复用户App请求消息分别创建接收请求消息队列和回复请求消息队列;步骤200、每个用户App发送请求消息到接收请求消息队列,消息路由层依次对接收请求消息队列中的请求消息进行处理,并为每个请求消息生成唯一处理标识发送给RIL;步骤300、当RIL接收到消息路由层发送的请求消息后,将请求消息添加到RIL请求列表中等待处理,RIL调用相应的回调函数,将请求消息转换为AT指令,下发AT指令,并等待返回结果;步骤400、RIL根据是否下发过AT指令对返回结果进行分别处理,为返回结果添加对应的请求消息唯一处理标识或URC消息类型id,并封装为返回消息发送给消息路由层;步骤500、消息路由层根据返回消息的唯一处理标识或URC消息类型id判断该返回消息发送的目的APP,将返回消息发送到回复请求消息队列等待发送到相应的目的APP。

【技术特征摘要】

【专利技术属性】
技术研发人员:李华敏屈兰金超张伟
申请(专利权)人:烽火通信科技股份有限公司
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1