CN101883345B - 一种处理at指令的方法及装置 - Google Patents
一种处理at指令的方法及装置 Download PDFInfo
- Publication number
- CN101883345B CN101883345B CN 201010216129 CN201010216129A CN101883345B CN 101883345 B CN101883345 B CN 101883345B CN 201010216129 CN201010216129 CN 201010216129 CN 201010216129 A CN201010216129 A CN 201010216129A CN 101883345 B CN101883345 B CN 101883345B
- Authority
- CN
- China
- Prior art keywords
- handle
- response
- receives
- instruction
- sent
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000012545 processing Methods 0.000 title claims abstract description 93
- 238000000034 method Methods 0.000 title claims abstract description 54
- 230000005540 biological transmission Effects 0.000 claims abstract description 18
- 230000004044 response Effects 0.000 claims description 216
- 239000000284 extract Substances 0.000 claims description 16
- 230000003139 buffering effect Effects 0.000 claims description 13
- 238000012163 sequencing technique Methods 0.000 claims description 11
- 230000002708 enhancing effect Effects 0.000 abstract 1
- 230000008569 process Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000012958 reprocessing Methods 0.000 description 1
Images
Landscapes
- Telephonic Communication Services (AREA)
Abstract
本发明公开了一种处理AT指令的方法及装置,以提高处理AT指令的效率。该方法包括:接收应用发送的与该应用相对应的句柄handle,该handle携带有待发送的AT指令;将接收到的handle在设定的handle处理队列中进行排队;按照排队顺序,从handle处理队列中提取至少一个handle放入到设定的handle处理容器中进行处理,并发送提取的handle所携带的AT指令。采用本发明技术方案,可并行发送多个handle的AT指令,从而提高了处理AT指令的效率。
Description
技术领域
本发明涉及通信领域,尤其涉及一种处理AT指令的方法及装置。
背景技术
目前,移动双待终端已经渐成主流,由于AT指令比较标准,且几乎所有的平台供应商都能够支持标准的AT指令,因此,市场上大部分移动双待终端都是通过AT指令来控制处理双网双待,通过AT指令来控制主从两个芯片,从而实现对双网双待的控制。
目前,处理AT指令的方式主要为:所有AT发送指令缓存在命令队列中,采用AT循环处理方式处理命令队列中的AT发送指令;应用直接调用AT处理,通过AT控制模块将AT指令发送出去,期间采用阻塞的技术,只有在接收到该AT指令对应的AT响应时,才发送命令队列中的下一个AT指令,依此类推。AT处理模块接收到AT响应时,根据经验设定将AT响应的类型传送给认为需要该AT响应的应用;当调用该AT响应的应用较多时,由各应用添加响应的事件轮询,并需要各应用记住各自是否处在发送AT指令并等待AT响应的状态。
采用现有技术的AT处理方式,针对每一个AT指令,在发送该AT指令之后,需要等待接收与该AT指令相对应的AT响应,只有在接收到该AT指令对应的AT响应时,再对下一条AT指令进行处理,其所带来的技术缺陷有以下几点:
(1)移动双待终端的从模块响应较慢,在进行一些特殊处理(如读取SIM(Subscriber Identity Module,客户识别模块)数据、UIM(User Identity Model,用户识别模块)卡数据)时显得尤为明显,由于从模块处理时间较长,响应速度较慢,若当前正在处理一个较为耗时的AT指令的从模块,接收到较高优先级的AT指令(如该AT指令的类型通话)时,必须等待上一条耗时的AT指令处理完成后才能处理高优先级的AT指令。由于AT指令没有优先级,属于串行的发送(一个处理完之后再处理下一个的方式),从而使得当需要持续处理AT指令时,易导致AT指令的堆积,从而不能及时的处理掉一些比较重要的AT指令,尤其是在频繁操作和双待相关的操作时,无法将需要及时解决的AT指令及时发送,从而导致双待终端在频繁操作时,对于业务处理反应较慢。
(2)现有技术对AT指令的处理,由于发起AT指令的应用不自带handle,因此,在对接收到的AT响应进行解析后,不能准确的解析后的AT响应发送到需要该AT响应的应用,因此,需要采用国轮询的方式将解析后的AT响应发送给多个应用,如应用A、B、C、D都需要接收类型为通话的AT响应,当接收到第一个类型为通话类型的AT响应(用第一AT响应表示)时,需要将该AT响应分别发送给应用A、B、C、D,由该应用A、B、C、D来确定第一AT响应是否为自身所期望的AT响应;当接收到第二个类型为通话类型的AT响应(用第二AT响应表示)时,还需要将该第二AT响应分别发送给A、B、C、D,依此类推。采用轮询的方式将解析之后的AT响应发送给每个应用,采用该种轮询方式不仅加大了应用的处理复杂度,还可能导致同一个AT响应可能被不同的应用重复处理;并且,该种方式使得多个应用不能同时调用相同的AT响应,因此,加大了AT处理控制难度。
发明内容
本发明提供一种处理AT指令的方法及装置,以提高AT指令的处理效率。
一种发送AT指令的方法,包括:
接收应用发送的与该应用相对应的句柄handle,该handle携带有待发送的AT指令;
将接收到的handle在设定的handle处理队列中进行排队;
按照排队顺序,从handle处理队列中提取至少一个handle放入到设定的handle处理容器中,并发送提取的handle所携带的AT指令。
一种处理AT响应的方法,包括:
接收AT响应,并从设定的handle处理容器中确定出当前期望接收该AT响应的一个或多个handle;
将接收到的AT响应发送给确定出的handle中的其中一个handle。
一种发送AT指令的装置,包括:
接收模块,用于接收应用发送的与该应用相对应的句柄handle,该handle携带有待发送的AT指令;
处理模块,用于将所述接收模块接收到的handle在设定的handle处理队列中进行排队;
发送模块,用于按照排队顺序,从handle处理队列中提取至少一个handle放入到设定的handle处理容器中,并发送提取的handle所携带的AT指令。
一种处理AT响应的装置,包括:
接收模块,用于接收AT响应;
确定模块,用于从设定的handle处理容器中确定出当前期望接收所述接收模块接收到的AT响应的一个或多个handle;
发送模块,用于将所述接收模块接收到的AT响应发送给确定模块确定出的handle中的其中一个handle。
一种移动终端,包括:
COMM处理机,用于接收AT响应和发送AT指令;并在接收AT响应时,接收中断触发数据,并将接收到的中断触发数据拼接组包成完整的一条或多条AT响应并输出;
AT处理机,用于针对COMM处理机输出的每条AT响应,确定出该AT响应的AT类型并输出;
Handle处理机,用于针对AT处理机输出的每条AT响应,从handle处理容器中确定出一个或多个当前期望接收该AT响应的handle,并将该AT响应发送给确定出的handle中的其中一个handle;以及,用于接收应用分发处理机发送的handle,并将接收到的handle在设定的handle处理队列中进行排队;按照排队顺序,从handle处理队列中提取至少一个handle放入到设定的handle处理容器中,并发送提取的handle所携带的AT指令;
应用分发处理机,用于调用通用接口为应用生成相应的handle,所述handle携带有待发送的AT指令并输出;以及,接收handle处理机发送的响应结果。本发明实施例中,在发送AT指令时,可以同时发送handle容器中的多个handle对应的AT指令,提高了发送AT指令的效率,从而使得在AT指令堆积的情况下能够及时的处理掉堆积的handle。在接收AT响应时,直接将接收到的AT响应发送给当前期望接收该AT响应的一个handle,从而将接收到的AT响应高效、准确地发送给需要该AT响应的应用,提高了AT响应的分发效率与准确性,避免了现有技术中针对一个AT响应需要采用轮询的方式发送给需要该AT响应的应用,从而导致AT响应分发效率较低的问题。
附图说明
图1A为本发明实施例中发送AT指令的方法流程图;
图1B为本发明实施例中接收AT响应的方法流程图;
图1C为本发明实施例中处理AT的方法流程图;
图2为本发明实施例中处理AT的TASK的架构图;
图3为本发明实施例中COMM单元接收数据的处理流程图;
图4为本发明实施例中AT处理机处理AT响应的流程图;
图5为本发明实施例中handle处理机发送AT指令的方法流程图;
图6为本发明实施例中handle处理机接收并处理AT响应的方法流程图;
图7为本发明实施例中发送AT指令的装置的结构示意图;
图8为本发明实施例中处理AT响应的装置的结构示意图。
具体实施方式
针对现有技术处理AT指令效率较低的问题,本发明实施例提供一种处理AT指令的方法,该方法包括:在移动终端设置有handle处理机;在发送AT指令时,应用向handle处理机发送携带有待发送AT指令的handle;handle处理机根据该handle的优先级将该handle***到设定的handle处理队列中合适的位置进行排队;handle处理机按排队顺序从handle处理队列中提取至少一个handle放入到设定的handle处理容器进行处理,并发送提取的handle所携带的AT指令,实现了并行发送handle容器中的多个handle对应的AT指令,提高了发送AT指令的效率,并且,handle按照优先级从高到低的顺序在handle处理队列中排队,从而使得在AT指令堆积的情况下能够及时的处理掉高优先级的handle。在接收AT响应时,从设定的handle处理容器中确定出当前期望接收该AT响应的一个或多个handle,并将接收到的AT响应发送给确定出的handle中的其中一个handle,从而将接收到的AT响应高效、准确地发送给需要该AT响应的应用,提高了AT响应的分发效率与准确性,避免了现有技术中针对一个AT响应需要采用轮询的方式发送给需要该AT响应的应用,从而导致AT响应分发效率较低的问题。
下面结合说明书附图对本发明技术方案进行详细的描述。
参见图1A,为本发明实施例中发送AT指令的方法流程图,该流程包括:
步骤101a、接收应用发送的与该应用相对应的handle,该handle携带有待发送的AT指令。
步骤102a、将接收到的handle在设定的handle处理队列中进行排队。
步骤103a、按照排队顺序,从handle处理队列中提取至少一个handle放入到设定的handle处理容器中,并发送提取的handle所携带的AT指令。
参见图1B,为本发明实施例中接收AT响应的方法流程图,该流程包括:
步骤101b、handle处理容器中的多个handle设置当前期望接收的AT响应。
步骤102b、接收AT响应,并确定出当前期望接收该AT响应的一个或多个handle;
步骤103b、将接收到的AT响应发送给确定出的handle中的其中一个handle。
上述步骤101a、101b中的handle都是由应用发送,并且该handle包括应用标识号(如ID值)、handle的优先级、handle的回调、待发送AT指令和该handle期望接收的AT响应序列,AT响应序列是指该handle发送AT指令之后期望得到的多个按照时序排列的AT响应所构成的序列。应用通过调用通用接口,由该通用接口初始化应用申请的handle所包括的应用ID值、handle的优先级、handle的回调、handle自身的AT指令和该handle期望接收的AT响应序列。
较佳地,本发明实施例中,handle处理队列中的handle按照优先级从高到低的顺序进行排队,优先级高的handle先被提取到handle处理容器中进行处理,优先级低的handle后被提取到handle处理容器中进行处理。上述流程中的步骤101a,将接收到的handle的优先级与handle处理队列中待处理的其他handle的优先级进行比较,并确定出一个或多个优先级低于接收到的handle优先级的handle,并将所述接收到的handle***到确定出的任意一个handle之前进行排队。一般情况下,将该handle***到优先级比该handle低一级的handle的前面。
较佳地,为避免低优先级的handle长时间不能被处理,本发明实施例,针对handle处理队列中的每一个handle,判断该handle被***handle的次数是否达到设定的次数阈值,若是,则对该handle设置用于表征禁止在该handle前***其他handle的标记,或者将该handle的优先级调高。
较佳地,上述流程步骤101a还包括步骤:
当接收到应用发送的handle时,设置handle处理信号,handle处理机在接收到handle处理信号时判断handle处理容器是否已满,若是,则忽略该handle处理信号。
较佳地,上述步骤103b具体包括:根据确定出的当前期望接收所述AT响应的一个或多个handle被提取到所述handle处理容器的先后顺序,确定出最先被提取到所述handle处理容器的handle;并将接收到的AT响应发送给确定出的最先被提取到所述handle处理容器的handle。
较佳地,上述流程的步骤103b之后还包括:
判断接收到的AT响应是否为接收该AT响应的handle期望接收的最后一个AT响应,若是,则根据该handle接收到的AT响应向与该handle对应的应用反馈响应结果;若否,则为该handle设置下一个期望接收的AT响应。
较佳地,上述流程步骤103b,还包括步骤:
若接收到的AT响应不为所述handle处理容器中任何一个handle所期望接收的AT响应时,将接收到的AT响应发送给常驻容器,所述常驻容器为用于处理主动上报事件的handle的容器。
本发明实施例中的handle处理容器可以设置为先进先出的容器,被提取到该handle容器中进行处理的handle按照被提取的先后顺序依次发送对应的AT指令,并且在接收到AT响应时,将该AT响应直接发送给需要该AT响应的handle中最先进入handle处理容器的handle。
较佳地,为进一步提高分发AT响应的效率,本发明实施例中,handle处理容器中的各handle在每接收到一个期望的AT响应时,将期望的下一AT响应的标识信息确定出来,以便handle处理机在接收到AT响应时,直接按照handle处理容器中各handle当前期望返回的AT响应的标识信息确定出当前需要该AT响应的一个或多个handle,再从多个handle中确定出最先进入handle处理容器的handle,将接收到的AT响应发送给确定出的handle。
本发明实施例还提供一种处理AT的方法流程图,该方法流程如图1C所示,该方法流程包括图1A的步骤101a~步骤103a和图1B的步骤101b~步骤103b。
在实际应用中,handle处理容器设置有5个容体,可以并行处理5个handle,handle与容体一一对应;并且针对每个容体设置有对应的发送定时器,每个发送定时器为一个特殊的数据结构集成,包含发送出去的数据、发送数据的次数等。Handle处理容器中的每个handle记录有其所用到的发送定时器的索引信息;当handle从该handle处理容器中注销时,将该handle所使用的定时器清空。
参见图2,为本发明实施例中,移动终端处理AT的TASK***架构图,该TASK***包括:COMM处理机、AT处理机、handle处理机和应用分发处理机,其中:
COMM处理机,用于接收AT响应和发送AT指令;并在接收AT响应时,接收中断触发数据,并将接收到的中断触发数据拼接组包成完整的一条或多条AT响应并输出;
AT处理机,用于针对COMM处理机输出的每条AT响应,确定出该AT响应的AT类型并输出;
Handle处理机,用于处理应用请求的AT handle,该AT handle为一个句柄,用于存储应用需要发送的AT指令的类型及期望接收的AT响应序列,还包括一个用于对AT响应处理的call back函数指针;用于针对AT处理机输出的每条AT响应,从handle处理容器中确定出一个或多个当前期望接收该AT响应的handle,并将该AT响应发送给确定出的handle中的其中一个handle;以及,用于接收应用分发处理机发送的handle,并将接收到的handle在设定的handle处理队列中进行排队;按照排队顺序,从handle处理队列中提取至少一个handle放入到设定的handle处理容器中,并发送提取的handle所携带的AT指令;
应用分发处理机,用于调用通用接口为应用生成相应的handle,所述handle携带有待发送的AT指令并输出;以及,接收handle处理机发送的响应结果。
采用如图2所示的TASK***对待发送AT指令进行处理的原理如下:
位于TASK***最高层的应用分发处理机调用通用接口为各应用生成与该应用相对应的handle,并将个应用对应的handle发送给handle处理机;handle处理机将接收到的handle按照优先级的顺序在handle处理队列中进行排队,并按照排队先后顺序从handle处理队列中提取至少一个handle放至handle处理容器中,该handle处理容器可并行处理固定数量的handle,从handle处理队列中提取handle的数量根据handle处理容器还能并行处理的handle的数量而定;handle处理机通过AT处理机和COMM处理机发送提取的handle对应的AT指令。本发明实施例中的handle处理容器可以是先进先出的容器,handle处理机按照进入handle处理容器的先后顺序依次发送各handle对应的AT指令。
采用如图2所示的TASK***对接收到的AT响应进行处理的原理如下:
位于TASK***最底层的COMM处理机对数据端口接收到的数据进行分析,得到一条或多条完整的AT响应,并将得到的AT响应发送给AT处理机;AT处理机对COMM处理机发送的AT响应进行分析,确定出COMM处理机发送的AT响应的AT类型,将确定出的AT类型的结构发送给handle处理机;handle处理机将接收到的AT响应发送给handle处理容器中当前期望接收该AT响应的一个或多个handle中的一个handle;并判断该AT响应是否为接收该AT响应的handle所期望的AT响应序列中的最后一个AT响应,若是,handle处理机将该handle从handle处理容器中注销,根据该handle接收到的AT响应向与该handle对应的应用反馈响应结果,并从handle处理队列中提取一个handle放入到handle处理容器中;若否,则在该handle存储该AT响应,并设定该handle下一个期望接收的AT响应。
在实际的应用中,COMM处理机通过调用SIO(Super Input Output chip,超级输入输出芯片)发送AT指令。
较佳地,为避免由于发送的AT指令在传输过程中丢失而导致发送失败的问题,本发明实施例中,预先在待发送的AT指令的结构中设置有是否重发AT指令的标识以及重发AT指令的时间阈值,该时间阈值为发送AT指令之后未收到AT相应的最长设定时间;COMM处理机制在发送AT指令之后的时间阈值内未收到与该AT指令相对应的AT响应时,重新发送该AT指令。
COMM处理机接收数据时,一般具有以下三种情况:
情况一、中断触发,一次接收,数据完整并刚好形成一条完整的信息;
情况二、中断触发,一次接收,数据不完整不足以形成一条完整的信息;
情况三、中断触发,一次接收,数据超出一条完整的信息。
该三种情况还可能夹杂出现,如第一次中断触发,接收到一条完整的数据和半条不完整的数据;第二次中断触发,接收到第一次中断触发接收到的半条不完整的数据的后续30%的数据;第三次中断触发,接收后续20%的数据。
上述例子仅仅是一种情况,在实际应用中,还包括各种各样的组合情况,因此,COMM处理机如何正确的将多次中断触发接收到的数据拼装组合成至少一条完整的AT响应,则直接决定着AT处理机对AT响应的类型的确定,从而影响到后续handle处理机对AT响应进行处理的准确性。
较佳地,为使得COMM处理机更好的将多次中断接触接收到的数据拼装成较为完整AT响应,本发明技术方案中,COMM处理机将每次中断触发接收到的数据缓存到缓冲buffer中,并在缓冲buffer中逐一查找是否包含有多个数据结尾标识,如“/r/n”(当一条数据发送完时都是以“/r/n”结尾),若有,则将任意两个“/r/n”之间的数据作为一条完整的AT响应发送给AT处理机,最后将不完整的数据继续保存在缓冲buffer中,并设置定时器;当设定时间到达时,重新接收数据并取消定时器,当设定时间没有到达时有中断触发,则取消该定时器。为更清楚的描述本发明实施例中COMM处理机对接收到的数据进行处理,以图3所示的流程图为例进行描述。
参见图3,为本发明实施例中COMM处理机接收数据的处理流程图,该流程包括步骤:
步骤301、接收中断触发。
步骤302、取消设定的定时器。
步骤303、接收中断触发数据,并将接收到的中断触发数据按照接收先后顺序依次存储在缓冲buffer中。
步骤304、从缓冲buffer接收到的数据中依次查找“/r/n”标识。
步骤305、判断该数据中是否包含多个“/r/n”标识,若是则执行步骤306,否则执行步骤307。
步骤306、将任意相邻的两个“/r/n”标识之间的数据拼接组包成一条完整的AT响应,并将得到的一条或多条AT响应发送给AT处理机。
步骤307、判断是否已经对缓冲buffer中的数据分析完毕,若是则执行步骤308,否则执行步骤304。
步骤308、判断缓冲buffer中是否还包含有不完整的数据,若是则执行步骤309,否则执行步骤310。
步骤309、为该不完整数据设置定时器,当设定时间达到时,则行步骤302。
步骤310、结束一次中断触发数据的接收。
在实际应用中,AT类型较多,AT处理机在接收到COMM处理机发送的完整数据时,对该完整数据进行分析,并根据分析结果与所有的AT类型逐一进行匹配,以确定出该数据的AT类型,由于AT类型的种类繁多,通过该种匹配方式确定出AT类型的工作量较大,耗时较长,
较佳地,为提高AT处理机确定AT类型的效率,本发明实施例中,还对AT类型做进一步的划分,将多个较为近似的AT类型划分到同一个较大范围的AT类型中,如发短信的AT类型和接收短信的AT类型都归类到短信AT中;依此,可将AT类型划分为:通用AT、呼叫AT、短信AT、电话簿AT、补充业务AT、数据业务AT、控制AT、扩展AT、安全选项AT等。为进一步对AT处理机确定AT类型进行详细的说明,以如图4所示的流程图为例进行说明。
参见图4,为本发明实施例中AT处理机确定AT类型的流程图,该流程包括步骤:
步骤401、接收COMM处理机发送的AT处理请求,该AT处理请求中携带有AT响应。
步骤402、判断接收到的AT响应是否为通用AT,若是则执行步骤412,否则执行步骤403。
步骤403、判断AT响应是否为呼叫AT,若是则执行步骤412,否则执行步骤404。
步骤404、判断AT响应是否为短信AT,若是则执行步骤412,否则执行步骤405。
步骤405、判断AT响应是否为电话簿AT,若是则执行步骤412,否则执行步骤406。
步骤406、判断AT响应是否为补充业务AT,若是则执行步骤412,否则执行步骤407。
步骤407、判断AT响应是否为数据业务AT,若是则执行步骤412,否则执行步骤408。
步骤408、判断AT响应是否为控制AT,若是则执行步骤412,否则执行步骤409。
步骤409、判断AT响应是否为扩展AT,若是则执行步骤412,否则执行步骤410。
步骤410、判断AT响应是否为安全选项AT,若是则执行步骤412,否则执行步骤411。
步骤411、确定接收到的AT响应为异常AT响应,并删除该AT响应。
步骤412、对接收到的AT响应进行解析。
步骤413、将解析之后的AT响应发送给handle处理机。
Handle处理机对数据进行处理包括发送处理与接收处理两部分,发送处理与接收处理相对独立但又有关联,在接收处理时需要根据发送处理的发送机制来进行相应的数据处理。
下面结合图5和图6对handle处理机处理AT的流程进行详细的描述。
参见图5,为本发明实施例中handle处理机发送AT指令的方法流程图,该流程包括:
步骤501、接收应用发送的与该应用相对应的handle,该handle包括应用的ID值、handle优先级、handle的回调、handle自身的AT指令和该handle期望接收的AT响应序列。
步骤502、handle处理机将接收到的handle加入到设定的handle处理队列中,并判断handle处理队列中是否有待处理的handle,若有则执行步骤503,否则执行步骤504。
步骤503、将当前接收到的handle的优先级与handle处理队列中的所有待处理handle的优先级进行比较,将接收到的handle***到优先级低于该handle的任意一个handle前面进行排队,handle处理机向handle处理容器发送handle处理信号。
步骤504、handle处理容器接收handle处理信号。
步骤505、handle处理容器判断handle处理容器是否已满,若是则执行步骤508,若否则执行步骤506。
步骤506、清除handle处理信号,并按照排队顺序从handle处理队列中提取至少一个handle放入到handle处理容器中,并调用AT函数发送提取的handle携带的AT指令。
步骤507、判断handle处理队列是否为空,若是则执行步骤508,否则执行步骤509。
步骤508、采用定时器对handle处理信号进行定时,设定时间到达时,重新向handle处理容器发送handle处理信号。
步骤509、结束流程。
参见图6,为本发明实施例中handle处理机接收并处理AT响应的方法流程图,该流程包括:
步骤601、接收AT处理机发送的AT响应。
步骤602、将AT响应发送给handle处理容器中第n个handle。
步骤603、该AT响应是该第n个handle期望的AT响应么,若是则执行步骤604,否则执行步骤608。
步骤604、在该第n个handle中保存该AT响应。
步骤605、判断该AT响应是该第n个handle期望的AT响应序列中最后一个AT响应,若是则执行步骤606,否则执行步骤607。
步骤606、采用call back函数将该第n个handle对应的AT响应序列组合成完整的响应结果并发送给相应的应用。
步骤607、设置该第n个handle的下一个期望的AT响应。
步骤608、判断handle处理容器中的所有handle都已经遍历,若是则执行步骤610,否则执行步骤609。
步骤609、n计算器加一。
步骤610、将AT响应发送给常驻handle处理器,并判断该常驻handle处理器是否处理该AT响应,若是则执行步骤612,否则执行步骤611。
步骤611、确定该AT响应为异常响应,并删除该AT响应。
步骤612、结束流程。
基于上述方法流程相同的构思,本发明实施例还提供一种发送AT指令的装置和一种处理AT响应的装置。
参见图7,为本发明实施例中发送AT指令的装置,该装置包括:
接收模块71,用于接收应用发送的与该应用相对应的句柄handle,该handle携带有待发送的AT指令;
处理模块72,用于将接收模块71接收到的handle在设定的handle处理队列中进行排队;
发送模块73,用于按照排队顺序,从handle处理队列中提取至少一个handle放入到设定的handle处理容器中,并发送提取的handle所携带的AT指令。
处理模块72具体应用为:将接收到的handle的优先级与handle处理队列中待处理的其他handle的优先级进行比较,并确定出一个或多个优先级低于所述接收到的handle优先级的handle;将所述接收到的handle***到确定出的任意一个handle之前进行排队。
处理模块72进一步用于,针对handle处理队列中的每个handle,判断该handle被***handle的次数是否达到设定的次数阈值,若是,则为所述handle设置用于表征禁止在该handle前面***其他handle的标记,或者,将handle的优先级调高。
上述各模块具体如何实现相应的功能与前述的方法中的处理方式一致,在此不再赘述。
参见图8,为本发明实施例中处理AT响应的装置,该装置包括:
接收模块81,用于接收AT响应;
确定模块82,用于从设定的handle处理容器中,确定出当前期望接收所述接收模块接收到的AT响应的一个或多个handle;
发送模块83,用于将所述接收模块81接收到的AT响应发送给确定模块82确定出的handle中的其中一个handle。
确定模块82具体应用为:根据确定出的一个或多个需要接收的AT响应的handle进入所述handle处理容器的先后顺序,确定出最先进入所述handle处理容器的handle;并将接收到的AT响应发送给确定出的最先进入所述handle处理容器的handle。
发送模块83进一步用于,判断所述接收到的AT响应是否为所述handle期望接收的最后一个AT响应,若是,则将该handle接收到的AT响应整合成一条反馈结果并发送给与该handle对应的应用;若否,则为该handle设置下一个期望接收的AT响应。
接收模块81进一步用于,若接收到的AT响应不为handle处理容器中任何一个handle所期望接收的AT响应时,将接收到的AT响应通过发送模块83发送给常驻容器,所述常驻容器用于处理主动上报事件的handle。
上述模块具体如何实现其对应的功能如前述方法的处理方式一致,在此不再赘述。
本发明实施例还提供一种移动终端,该移动终端包括:
COMM处理机,用于接收AT响应和发送AT指令;并在接收AT响应时,接收中断触发数据,并将接收到的中断触发数据拼接组包成完整的一条或多条AT响应并输出;
AT处理机,用于针对COMM处理机输出的每条AT响应,确定出该AT响应的AT类型并输出;
Handle处理机,用于针对AT处理机输出的每条AT响应,从handle处理容器中确定出一个或多个当前期望接收该AT响应的handle,并将该AT响应发送给确定出的handle中的其中一个handle;以及,用于接收应用分发处理机发送的handle,并将接收到的handle在设定的handle处理队列中进行排队;按照排队顺序,从handle处理队列中提取至少一个handle放入到设定的handle处理容器中,并发送提取的handle所携带的AT指令;
应用分发处理机,用于调用通用接口为应用生成相应的handle,所述handle携带有待发送的AT指令并输出;以及,接收handle处理机发送的响应结果。
COMM处理机将接收到的中断触发数据拼接组包成完整的一条或多条AT响应,具体包括:
将接收到的中断触发数据按照接收的先后顺序存储在缓冲中;
从缓冲接收到的数据中查找数据结尾标识;
当查找到多个结尾标识时,将任意相邻的两个数据结尾标识之间的数据拼接组包成一条完整AT响应。
本发明技术方案并不仅限于处理AT指令的处理,对于其他握手通信协议的指令也可采取本发明提供的技术方案。
本发明实施例中,一方面,在发送AT指令时,可以同时发送handle容器中的多个handle对应的AT指令,提高了发送AT指令的效率,并且,handle按照优先级从高到低的顺序在handle处理队列中排队,从而使得在AT指令堆积的情况下能够及时的处理掉高优先级的handle;另一方面,在接收AT响应时,直接将接收到的AT响应发送给最先进入handle容器的且需要该AT响应的handle,从而将接收到的AT响应高效、准确地发送给需要该AT响应的应用,提高了AT响应的分发效率与准确性,避免了现有技术中针对一个AT响应需要采用轮询的方式发送给需要该AT响应的应用,从而导致AT响应分发效率较低的问题。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (16)
1.一种发送AT指令的方法,其特征在于,包括:
接收应用发送的与该应用相对应的句柄handle,该handle携带有待发送的AT指令;
将接收到的handle在设定的handle处理队列中进行排队;
按照排队顺序,从handle处理队列中提取至少一个handle放入到设定的handle处理容器中,并发送提取的handle所携带的AT指令。
2.如权利要求1所述的方法,其特征在于,所述应用发送的handle通过调用通用接口生成,该handle包括该应用的标识号、该handle优先级、handle回调、待发送AT指令和该handle期望接收的AT响应序列。
3.如权利要求2所述的方法,其特征在于,将接收到的handle在设定的handle处理队列中进行排队,具体为:
将接收到的handle的优先级与handle处理队列中待处理的其他handle的优先级进行比较,并确定出一个或多个优先级低于接收到的handle优先级的handle;
将所述接收到的handle***到确定出的任意一个handle之前进行排队。
4.如权利要求3所述的方法,其特征在于,还包括步骤:
针对handle处理队列中的每个handle,判断该handle被***handle的次数是否达到设定的次数阈值,若是,则为该handle设置用于表征禁止在该handle前面***其他handle的标记,或者,将该handle的优先级调高。
5.一种处理AT响应的方法,所述AT响应是如权利要求1所述方法发送的AT指令的AT响应,其特征在于,包括:
接收AT响应,并从设定的handle处理容器中确定出当前期望接收该AT响应的一个或多个handle;
将接收到的AT响应发送给确定出的handle中的其中一个handle。
6.如权利要求5所述的方法,其特征在于,handle为与该handle对应的应用通过调用通用接口生成,handle包括应用的标识号、handle的优先级、handle回调、待发送AT指令和该handle期望接收的AT响应序列。
7.如权利要求5所述的方法,其特征在于,将接收到的AT响应发送给确定出的handle中的其中一个handle,具体为:
根据确定出的当前期望接收所述AT响应的一个或多个handle被提取到所述handle处理容器的先后顺序,确定出最先被提取到所述handle处理容器的handle;并将接收到的AT响应发送给确定出的最先被提取到所述handle处理容器的handle。
8.如权利要求5~7任一项所述的方法,其特征在于,将接收到的AT响应发送给确定出的handle中的其中一个handle之后,还包括步骤:
判断所述接收到的AT响应是否为接收该AT响应的handle期望接收的最后一个AT响应,若是,则根据该handle接收到的AT响应向与该handle对应的应用反馈响应结果;若否,则为该handle设置下一个期望接收的AT响应。
9.如权利要求8所述的方法,其特征在于,还包括步骤:
若接收到的AT响应不为所述handle处理容器中任何一个handle所期望接收的AT响应时,将接收到的AT响应发送给常驻容器,所述常驻容器为用于处理主动上报事件的handle的容器。
10.如权利要求5所述的方法,其特征在于,接收AT响应之前,还包括步骤:
接收中断触发数据,并将接收到的中断触发数据按照接收先后顺序保存在缓冲中;
从缓冲接收到的数据中查找数据结尾标识;
当查找到多个结尾标识时,将任意相邻的两个数据结尾标识之间的数据拼接组包成一条完整的AT响应。
11.一种发送AT指令的装置,其特征在于,包括:
接收模块,用于接收应用发送的与该应用相对应的句柄handle,该handle携带有待发送的AT指令;
处理模块,用于将所述接收模块接收到的handle在设定的handle处理队列中进行排队;
发送模块,用于按照排队顺序,从handle处理队列中提取至少一个handle放入到设定的handle处理容器中,并发送提取的handle所携带的AT指令。
12.如权利要求11所述的装置,其特征在于,所述处理模块,具体应用为:
将接收到的handle的优先级与handle处理队列中待处理的其他handle的优先级进行比较,并确定出一个或多个优先级低于接收到的handle优先级的handle;将所述接收到的handle***到确定出的任意一个handle之前进行排队。
13.一种处理AT响应的装置,所述AT响应是如权利要求11所述装置发送的AT指令的AT响应,其特征在于,包括:
接收模块,用于接收AT响应;
确定模块,用于从设定的handle处理容器中确定出当前期望接收所述接收模块接收到的AT响应的一个或多个handle;
发送模块,用于将所述接收模块接收到的AT响应发送给确定模块确定出的handle中的其中一个handle。
14.如权利要求13所述的装置,其特征在于,所述发送模块,具体应用为:
根据所述确定模块确定出的当前期望接收所述AT响应的一个或多个handle被提取到所述handle处理容器的先后顺序,确定出最先被提取到所述handle处理容器的handle;并将接收到的AT响应发送给确定出的最先被提取到所述handle处理容器的handle。
15.一种移动终端,其特征在于,包括:
COMM处理机,用于接收AT响应和发送AT指令;并在接收AT响应时,接收中断触发数据,并将接收到的中断触发数据拼接组包成完整的一条或多条AT响应并输出;
AT处理机,用于针对COMM处理机输出的每条AT响应,确定出该AT响应的AT类型并输出;
Handle处理机,用于针对AT处理机输出的每条AT响应,从handle处理容器中确定出一个或多个当前期望接收该AT响应的handle,并将该AT响应发送给确定出的handle中的其中一个handle;以及,用于接收应用分发处理机发送的handle,并将接收到的handle在设定的handle处理队列中进行排队;按照排队顺序,从handle处理队列中提取至少一个handle放入到设定的handle处理容器中,并发送提取的handle所携带的AT指令;
应用分发处理机,用于调用通用接口为应用生成相应的handle,所述handle携带有待发送的AT指令并输出;以及,接收handle处理机发送的响应结果。
16.如权利要求15所述的移动终端,其特征在于,所述COMM处理机具体用于:
将接收到的中断触发数据按照接收的先后顺序存储在缓冲中;
从缓冲接收到的数据中查找数据结尾标识;
当查找到多个结尾标识时,将任意相邻的两个数据结尾标识之间的数据拼接组包成一条完整的AT响应。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010216129 CN101883345B (zh) | 2010-06-30 | 2010-06-30 | 一种处理at指令的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010216129 CN101883345B (zh) | 2010-06-30 | 2010-06-30 | 一种处理at指令的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101883345A CN101883345A (zh) | 2010-11-10 |
CN101883345B true CN101883345B (zh) | 2012-12-12 |
Family
ID=43055200
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010216129 Expired - Fee Related CN101883345B (zh) | 2010-06-30 | 2010-06-30 | 一种处理at指令的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101883345B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104053252B (zh) * | 2014-06-04 | 2017-08-11 | 青岛海信移动通信技术股份有限公司 | 一种at指令处理方法、装置及*** |
CN106210045A (zh) * | 2016-07-11 | 2016-12-07 | 浪潮(北京)电子信息产业有限公司 | 一种scst及其数据处理方法 |
CN113179227B (zh) * | 2021-04-26 | 2023-05-19 | 哈尔滨铁路科研所科技有限公司 | 基于队列的at指令控制方法 |
CN116112911A (zh) * | 2023-02-10 | 2023-05-12 | 迈普通信技术股份有限公司 | At指令处理方法、装置、终端设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101030975A (zh) * | 2007-02-15 | 2007-09-05 | 重庆重邮信科股份有限公司 | 一种提高协议栈at指令响应速度的处理方法 |
CN101035373A (zh) * | 2007-04-11 | 2007-09-12 | 重庆重邮信科(集团)股份有限公司 | 一种使用at指令实现ccbs业务的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060148462A1 (en) * | 2004-10-14 | 2006-07-06 | Xiongwei Zhu | Customizable mobile phone using at command |
-
2010
- 2010-06-30 CN CN 201010216129 patent/CN101883345B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101030975A (zh) * | 2007-02-15 | 2007-09-05 | 重庆重邮信科股份有限公司 | 一种提高协议栈at指令响应速度的处理方法 |
CN101035373A (zh) * | 2007-04-11 | 2007-09-12 | 重庆重邮信科(集团)股份有限公司 | 一种使用at指令实现ccbs业务的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101883345A (zh) | 2010-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103532823A (zh) | 物联网消息处理方法、装置及*** | |
CN103297395B (zh) | 一种互联网业务的实现方法、***以及装置 | |
CN102404367B (zh) | 一种异步通信方法及*** | |
CN101883345B (zh) | 一种处理at指令的方法及装置 | |
CN111563820B (zh) | 智能合约并行执行方法及装置 | |
CN104517086B (zh) | 身份证信息读取方法 | |
CN103139157A (zh) | 一种基于socket的网络通信方法、装置及*** | |
CN111343590A (zh) | 一种具有高并发和高稳定性的短信发送*** | |
CN106034113A (zh) | 数据处理方法及装置 | |
CN105516086A (zh) | 业务处理方法及装置 | |
CN111510493B (zh) | 分布式数据传输方法及装置 | |
CN101052031B (zh) | 苹果计算机与无线通讯终端进行数据交互的方法 | |
CN113014510B (zh) | 惯导***分布式测试中数据缓存方法及装置 | |
CN102497441A (zh) | 一种手机与计算机之间的信息同步的方法及*** | |
CN101984717A (zh) | 一种数据同步方法、移动终端及数据同步*** | |
CN101888404A (zh) | 一种移动设备数据更新的方法及装置 | |
CN112270536B (zh) | 一种基于pos的聚合支付方法、***及相关装置 | |
CN105072082A (zh) | 发送验证码的方法和装置 | |
CN110389976B (zh) | 一种多接口数据的调度方法和装置 | |
CN103619053A (zh) | 一种用户识别卡的使用方法和通信*** | |
CN103299298A (zh) | 处理业务的方法和*** | |
CN102413247A (zh) | 终端死机现场的恢复方法及装置 | |
CN101626431B (zh) | 一种能适应通讯模式的处理方法及*** | |
CN110889765A (zh) | 交易信息报送方法及装置 | |
CN202818528U (zh) | 交换机以及光通讯设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20121212 |