專利名稱:一種處理at指令的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,尤其涉及一種處理AT指令的方法及裝置。
背景技術(shù):
目前,移動雙待終端已經(jīng)漸成主流,由于AT指令比較標準,且?guī)缀跛械钠脚_供 應(yīng)商都能夠支持標準的AT指令,因此,市場上大部分移動雙待終端都是通過AT指令來控制 處理雙網(wǎng)雙待,通過AT指令來控制主從兩個芯片,從而實現(xiàn)對雙網(wǎng)雙待的控制。目前,處理AT指令的方式主要為所有AT發(fā)送指令緩存在命令隊列中,采用AT循 環(huán)處理方式處理命令隊列中的AT發(fā)送指令;應(yīng)用直接調(diào)用AT處理,通過AT控制模塊將AT 指令發(fā)送出去,期間采用阻塞的技術(shù),只有在接收到該AT指令對應(yīng)的AT響應(yīng)時,才發(fā)送命 令隊列中的下一個AT指令,依此類推。AT處理模塊接收到AT響應(yīng)時,根據(jù)經(jīng)驗設(shè)定將AT 響應(yīng)的類型傳送給認為需要該AT響應(yīng)的應(yīng)用;當(dāng)調(diào)用該AT響應(yīng)的應(yīng)用較多時,由各應(yīng)用添 加響應(yīng)的事件輪詢,并需要各應(yīng)用記住各自是否處在發(fā)送AT指令并等待AT響應(yīng)的狀態(tài)。采用現(xiàn)有技術(shù)的AT處理方式,針對每一個AT指令,在發(fā)送該AT指令之后,需要等 待接收與該AT指令相對應(yīng)的AT響應(yīng),只有在接收到該AT指令對應(yīng)的AT響應(yīng)時,再對下一 條AT指令進行處理,其所帶來的技術(shù)缺陷有以下幾點(1)移動雙待終端的從模塊響應(yīng)較慢,在進行一些特殊處理(如讀取 SIM (Subscriber Identity Module,客戶識別模塊)數(shù)據(jù)、UIM (User Identity Model,用戶 識別模塊)卡數(shù)據(jù))時顯得尤為明顯,由于從模塊處理時間較長,響應(yīng)速度較慢,若當(dāng)前正 在處理一個較為耗時的AT指令的從模塊,接收到較高優(yōu)先級的AT指令(如該AT指令的類 型通話)時,必須等待上一條耗時的AT指令處理完成后才能處理高優(yōu)先級的AT指令。由 于AT指令沒有優(yōu)先級,屬于串行的發(fā)送(一個處理完之后再處理下一個的方式),從而使 得當(dāng)需要持續(xù)處理AT指令時,易導(dǎo)致AT指令的堆積,從而不能及時的處理掉一些比較重要 的AT指令,尤其是在頻繁操作和雙待相關(guān)的操作時,無法將需要及時解決的AT指令及時發(fā) 送,從而導(dǎo)致雙待終端在頻繁操作時,對于業(yè)務(wù)處理反應(yīng)較慢。(2)現(xiàn)有技術(shù)對AT指令的處理,由于發(fā)起AT指令的應(yīng)用不自帶handle,因此,在 對接收到的AT響應(yīng)進行解析后,不能準確的解析后的AT響應(yīng)發(fā)送到需要該AT響應(yīng)的應(yīng) 用,因此,需要采用國輪詢的方式將解析后的AT響應(yīng)發(fā)送給多個應(yīng)用,如應(yīng)用A、B、C、D都 需要接收類型為通話的AT響應(yīng),當(dāng)接收到第一個類型為通話類型的AT響應(yīng)(用第一 AT響 應(yīng)表示)時,需要將該AT響應(yīng)分別發(fā)送給應(yīng)用A、B、C、D,由該應(yīng)用A、B、C、D來確定第一 AT 響應(yīng)是否為自身所期望的AT響應(yīng);當(dāng)接收到第二個類型為通話類型的AT響應(yīng)(用第二 AT 響應(yīng)表示)時,還需要將該第二 AT響應(yīng)分別發(fā)送給A、B、C、D,依此類推。采用輪詢的方式 將解析之后的AT響應(yīng)發(fā)送給每個應(yīng)用,采用該種輪詢方式不僅加大了應(yīng)用的處理復(fù)雜度, 還可能導(dǎo)致同一個AT響應(yīng)可能被不同的應(yīng)用重復(fù)處理;并且,該種方式使得多個應(yīng)用不能 同時調(diào)用相同的AT響應(yīng),因此,加大了 AT處理控制難度。
發(fā)明內(nèi)容
本發(fā)明提供一種處理AT指令的方法及裝置,以提高AT指令的處理效率。一種發(fā)送AT指令的方法,包括接收應(yīng)用發(fā)送的與該應(yīng)用相對應(yīng)的句柄handle,該handle攜帶有待發(fā)送的AT指 令;將接收到的handle在設(shè)定的handle處理隊列中進行排隊;按照排隊順序,從handle處理隊列中提取至少一個handle放入到設(shè)定的handle 處理容器中,并發(fā)送提取的handle所攜帶的AT指令。一種處理AT響應(yīng)的方法,包括接收AT響應(yīng),并從設(shè)定的handle處理容器中確定出當(dāng)前期望接收該AT響應(yīng)的一 個或多個handle ;將接收到的AT響應(yīng)發(fā)送給確定出的handle中的其中一個handle。一種發(fā)送AT指令的裝置,包括接收模塊,用于接收應(yīng)用發(fā)送的與該應(yīng)用相對應(yīng)的句柄handle,該handle攜帶有 待發(fā)送的AT指令;處理模塊,用于將所述接收模塊接收到的handle在設(shè)定的handle處理隊列中進 行排隊;發(fā)送模塊,用于按照排隊順序,從handle處理隊列中提取至少一個handle放入到 設(shè)定的handle處理容器中,并發(fā)送提取的handle所攜帶的AT指令。一種處理AT響應(yīng)的裝置,包括接收模塊,用于接收AT響應(yīng);確定模塊,用于從設(shè)定的handle處理容器中確定出當(dāng)前期望接收所述接收模塊 接收到的AT響應(yīng)的一個或多個handle ;發(fā)送模塊,用于將所述接收模塊接收到的AT響應(yīng)發(fā)送給確定模塊確定出的 handle中的其中一個handle。一種移動終端,包括COMM處理機,用于接收AT響應(yīng)和發(fā)送AT指令;并在接收AT響應(yīng)時,接收中斷觸 發(fā)數(shù)據(jù),并將接收到的中斷觸發(fā)數(shù)據(jù)拼接組包成完整的一條或多條AT響應(yīng)并輸出;AT處理機,用于針對COMM處理機輸出的每條AT響應(yīng),確定出該AT響應(yīng)的AT類型 并輸出;Handle處理機,用于針對AT處理機輸出的每條AT響應(yīng),從handle處理容器中 確定出一個或多個當(dāng)前期望接收該AT響應(yīng)的handle,并將該AT響應(yīng)發(fā)送給確定出的 handle中的其中一個handle ;以及,用于接收應(yīng)用分發(fā)處理機發(fā)送的handle,并將接收到 的handle在設(shè)定的handle處理隊列中進行排隊;按照排隊順序,從handle處理隊列中提 取至少一個handle放入到設(shè)定的handle處理容器中,并發(fā)送提取的handle所攜帶的AT 指令;應(yīng)用分發(fā)處理機,用于調(diào)用通用接口為應(yīng)用生成相應(yīng)的handle,所述handle攜帶 有待發(fā)送的AT指令并輸出;以及,接收handle處理機發(fā)送的響應(yīng)結(jié)果。本發(fā)明實施例中, 在發(fā)送AT指令時,可以同時發(fā)送handle容器中的多個handle對應(yīng)的AT指令,提高了發(fā)送AT指令的效率,從而使得在AT指令堆積的情況下能夠及時的處理掉堆積的handle。在接 收AT響應(yīng)時,直接將接收到的AT響應(yīng)發(fā)送給當(dāng)前期望接收該AT響應(yīng)的一個handle,從而 將接收到的AT響應(yīng)高效、準確地發(fā)送給需要該AT響應(yīng)的應(yīng)用,提高了 AT響應(yīng)的分發(fā)效率 與準確性,避免了現(xiàn)有技術(shù)中針對一個AT響應(yīng)需要采用輪詢的方式發(fā)送給需要該AT響應(yīng) 的應(yīng)用,從而導(dǎo)致AT響應(yīng)分發(fā)效率較低的問題。
圖IA為本發(fā)明實施例中發(fā)送AT指令的方法流程圖;圖IB為本發(fā)明實施例中接收AT響應(yīng)的方法流程圖;圖IC為本發(fā)明實施例中處理AT的方法流程圖;圖2為本發(fā)明實施例中處理AT的TASK的架構(gòu)圖;圖3為本發(fā)明實施例中COMM單元接收數(shù)據(jù)的處理流程圖;圖4為本發(fā)明實施例中AT處理機處理AT響應(yīng)的流程圖;圖5為本發(fā)明實施例中handle處理機發(fā)送AT指令的方法流程圖;圖6為本發(fā)明實施例中handle處理機接收并處理AT響應(yīng)的方法流程圖;圖7為本發(fā)明實施例中發(fā)送AT指令的裝置的結(jié)構(gòu)示意圖;圖8為本發(fā)明實施例中處理AT響應(yīng)的裝置的結(jié)構(gòu)示意圖。
具體實施例方式針對現(xiàn)有技術(shù)處理AT指令效率較低的問題,本發(fā)明實施例提供一種處理AT指令 的方法,該方法包括在移動終端設(shè)置有handle處理機;在發(fā)送AT指令時,應(yīng)用向handle 處理機發(fā)送攜帶有待發(fā)送AT指令的handle ;handle處理機根據(jù)該handle的優(yōu)先級將該 handle插入到設(shè)定的handle處理隊列中合適的位置進行排隊;handle處理機按排隊順序 從handle處理隊列中提取至少一個handle放入到設(shè)定的handle處理容器進行處理,并發(fā) 送提取的handle所攜帶的AT指令,實現(xiàn)了并行發(fā)送handle容器中的多個handle對應(yīng)的 AT指令,提高了發(fā)送AT指令的效率,并且,handle按照優(yōu)先級從高到低的順序在handle處 理隊列中排隊,從而使得在AT指令堆積的情況下能夠及時的處理掉高優(yōu)先級的handle。在 接收AT響應(yīng)時,從設(shè)定的handle處理容器中確定出當(dāng)前期望接收該AT響應(yīng)的一個或多個 handle,并將接收到的AT響應(yīng)發(fā)送給確定出的handle中的其中一個handle,從而將接收到 的AT響應(yīng)高效、準確地發(fā)送給需要該AT響應(yīng)的應(yīng)用,提高了 AT響應(yīng)的分發(fā)效率與準確性, 避免了現(xiàn)有技術(shù)中針對一個AT響應(yīng)需要采用輪詢的方式發(fā)送給需要該AT響應(yīng)的應(yīng)用,從 而導(dǎo)致AT響應(yīng)分發(fā)效率較低的問題。下面結(jié)合說明書附圖對本發(fā)明技術(shù)方案進行詳細的描述。參見圖1A,為本發(fā)明實施例中發(fā)送AT指令的方法流程圖,該流程包括步驟101a、接收應(yīng)用發(fā)送的與該應(yīng)用相對應(yīng)的handle,該handle攜帶有待發(fā)送的 AT指令。步驟102a、將接收到的handle在設(shè)定的handle處理隊列中進行排隊。步驟103a、按照排隊順序,從handle處理隊列中提取至少一個handle放入到設(shè)定 的handle處理容器中,并發(fā)送提取的handle所攜帶的AT指令。
參見圖1B,為本發(fā)明實施例中接收AT響應(yīng)的方法流程圖,該流程包括步驟101b、handle處理容器中的多個handle設(shè)置當(dāng)前期望接收的AT響應(yīng)。步驟102b、接收AT響應(yīng),并確定出當(dāng)前期望接收該AT響應(yīng)的一個或多個handle ;步驟103b、將接收到的AT響應(yīng)發(fā)送給確定出的handle中的其中一個handle。上述步驟IOlaUOlb中的handle都是由應(yīng)用發(fā)送,并且該handle包括應(yīng)用標識 號(如ID值)、handle的優(yōu)先級、handle的回調(diào)、待發(fā)送AT指令和該handle期望接收的 AT響應(yīng)序列,AT響應(yīng)序列是指該handle發(fā)送AT指令之后期望得到的多個按照時序排列的 AT響應(yīng)所構(gòu)成的序列。應(yīng)用通過調(diào)用通用接口,由該通用接口初始化應(yīng)用申請的handle所 包括的應(yīng)用ID值、handle的優(yōu)先級、handle的回調(diào)、handle自身的AT指令和該handle期 望接收的AT響應(yīng)序列。較佳地,本發(fā)明實施例中,handle處理隊列中的handle按照優(yōu)先級從高到低的 順序進行排隊,優(yōu)先級高的handle先被提取到handle處理容器中進行處理,優(yōu)先級低的 handle后被提取到handle處理容器中進行處理。上述流程中的步驟101a,將接收到的 handle的優(yōu)先級與handle處理隊列中待處理的其他handle的優(yōu)先級進行比較,并確定出 一個或多個優(yōu)先級低于接收到的handle優(yōu)先級的handle,并將所述接收到的handle插入 到確定出的任意一個handle之前進行排隊。一般情況下,將該handle插入到優(yōu)先級比該 handle低一級的handle的前面。較佳地,為避免低優(yōu)先級的handle長時間不能被處理,本發(fā)明實施例,針對 handle處理隊列中的每一個handle,判斷該handle被插入handle的次數(shù)是否達到設(shè)定的 次數(shù)閾值,若是,則對該handle設(shè)置用于表征禁止在該handle前插入其他handle的標記, 或者將該handle的優(yōu)先級調(diào)高。較佳地,上述流程步驟IOla還包括步驟當(dāng)接收到應(yīng)用發(fā)送的handle時,設(shè)置handle處理信號,handle處理機在接收到 handle處理信號時判斷handle處理容器是否已滿,若是,則忽略該handle處理信號。較佳地,上述步驟103b具體包括根據(jù)確定出的當(dāng)前期望接收所述AT響應(yīng)的 一個或多個handle被提取到所述handle處理容器的先后順序,確定出最先被提取到所 述handle處理容器的handle ;并將接收到的AT響應(yīng)發(fā)送給確定出的最先被提取到所述 handle處理容器的handle。較佳地,上述流程的步驟103b之后還包括判斷接收到的AT響應(yīng)是否為接收該AT響應(yīng)的handle期望接收的最后一個AT響 應(yīng),若是,則根據(jù)該handle接收到的AT響應(yīng)向與該handle對應(yīng)的應(yīng)用反饋響應(yīng)結(jié)果;若 否,則為該handle設(shè)置下一個期望接收的AT響應(yīng)。較佳地,上述流程步驟103b,還包括步驟若接收到的AT響應(yīng)不為所述handle處理容器中任何一個handle所期望接收的 AT響應(yīng)時,將接收到的AT響應(yīng)發(fā)送給常駐容器,所述常駐容器為用于處理主動上報事件的 handle的容器。本發(fā)明實施例中的handle處理容器可以設(shè)置為先進先出的容器,被提取到該 handle容器中進行處理的handle按照被提取的先后順序依次發(fā)送對應(yīng)的AT指令,并且在 接收到AT響應(yīng)時,將該AT響應(yīng)直接發(fā)送給需要該AT響應(yīng)的handle中最先進入handle處理容器的handle。較佳地,為進一步提高分發(fā)AT響應(yīng)的效率,本發(fā)明實施例中,handle處理容器中 的各handle在每接收到一個期望的AT響應(yīng)時,將期望的下一 AT響應(yīng)的標識信息確定出 來,以便handle處理機在接收到AT響應(yīng)時,直接按照handle處理容器中各handle當(dāng)前 期望返回的AT響應(yīng)的標識信息確定出當(dāng)前需要該AT響應(yīng)的一個或多個handle,再從多個 handle中確定出最先進入handle處理容器的handle,將接收到的AT響應(yīng)發(fā)送給確定出的 handle。本發(fā)明實施例還提供一種處理AT的方法流程圖,該方法流程如圖IC所示,該方法 流程包括圖IA的步驟IOla 步驟103a和圖IB的步驟IOlb 步驟103b。在實際應(yīng)用中,handle處理容器設(shè)置有5個容體,可以并行處理5個handle, handle與容體一一對應(yīng);并且針對每個容體設(shè)置有對應(yīng)的發(fā)送定時器,每個發(fā)送定時器為 一個特殊的數(shù)據(jù)結(jié)構(gòu)集成,包含發(fā)送出去的數(shù)據(jù)、發(fā)送數(shù)據(jù)的次數(shù)等。Handle處理容器中的 每個handle記錄有其所用到的發(fā)送定時器的索引信息;當(dāng)handle從該handle處理容器中 注銷時,將該handle所使用的定時器清空。參見圖2,為本發(fā)明實施例中,移動終端處理AT的TASK系統(tǒng)架構(gòu)圖,該TASK系統(tǒng) 包括C0MM處理機、AT處理機、handle處理機和應(yīng)用分發(fā)處理機,其中COMM處理機,用于接收AT響應(yīng)和發(fā)送AT指令;并在接收AT響應(yīng)時,接收中斷觸 發(fā)數(shù)據(jù),并將接收到的中斷觸發(fā)數(shù)據(jù)拼接組包成完整的一條或多條AT響應(yīng)并輸出;AT處理機,用于針對COMM處理機輸出的每條AT響應(yīng),確定出該AT響應(yīng)的AT類型 并輸出;Handle處理機,用于處理應(yīng)用請求的AT handle,該AT handle為一個句柄,用于 存儲應(yīng)用需要發(fā)送的AT指令的類型及期望接收的AT響應(yīng)序列,還包括一個用于對AT響 應(yīng)處理的call back函數(shù)指針;用于針對AT處理機輸出的每條AT響應(yīng),從handle處理容 器中確定出一個或多個當(dāng)前期望接收該AT響應(yīng)的handle,并將該AT響應(yīng)發(fā)送給確定出的 handle中的其中一個handle ;以及,用于接收應(yīng)用分發(fā)處理機發(fā)送的handle,并將接收到 的handle在設(shè)定的handle處理隊列中進行排隊;按照排隊順序,從handle處理隊列中提 取至少一個handle放入到設(shè)定的handle處理容器中,并發(fā)送提取的handle所攜帶的AT 指令;應(yīng)用分發(fā)處理機,用于調(diào)用通用接口為應(yīng)用生成相應(yīng)的handle,所述handle攜帶 有待發(fā)送的AT指令并輸出;以及,接收handle處理機發(fā)送的響應(yīng)結(jié)果。采用如圖2所示的TASK系統(tǒng)對待發(fā)送AT指令進行處理的原理如下位于TASK系統(tǒng)最高層的應(yīng)用分發(fā)處理機調(diào)用通用接口為各應(yīng)用生成與該應(yīng)用相 對應(yīng)的handle,并將個應(yīng)用對應(yīng)的handle發(fā)送給handle處理機;handle處理機將接收 到的handle按照優(yōu)先級的順序在handle處理隊列中進行排隊,并按照排隊先后順序從 handle處理隊列中提取至少一個handle放至handle處理容器中,該handle處理容器可并 行處理固定數(shù)量的handle,從handle處理隊列中提取handle的數(shù)量根據(jù)handle處理容器 還能并行處理的handle的數(shù)量而定;handle處理機通過AT處理機和COMM處理機發(fā)送提 取的handle對應(yīng)的AT指令。本發(fā)明實施例中的handle處理容器可以是先進先出的容器, handle處理機按照進入handle處理容器的先后順序依次發(fā)送各handle對應(yīng)的AT指令。
采用如圖2所示的TASK系統(tǒng)對接收到的AT響應(yīng)進行處理的原理如下位于TASK系統(tǒng)最底層的COMM處理機對數(shù)據(jù)端口接收到的數(shù)據(jù)進行分析,得到一 條或多條完整的AT響應(yīng),并將得到的AT響應(yīng)發(fā)送給AT處理機;AT處理機對COMM處理機發(fā) 送的AT響應(yīng)進行分析,確定出COMM處理機發(fā)送的AT響應(yīng)的AT類型,將確定出的AT類型 的結(jié)構(gòu)發(fā)送給handle處理機;handle處理機將接收到的AT響應(yīng)發(fā)送給handle處理容器中 當(dāng)前期望接收該AT響應(yīng)的一個或多個handle中的一個handle ;并判斷該AT響應(yīng)是否為 接收該AT響應(yīng)的handle所期望的AT響應(yīng)序列中的最后一個AT響應(yīng),若是,handle處理 機將該handle從handle處理容器中注銷,根據(jù)該handle接收到的AT響應(yīng)向與該handle 對應(yīng)的應(yīng)用反饋響應(yīng)結(jié)果,并從handle處理隊列中提取一個handle放入到handle處理容 器中;若否,則在該handle存儲該AT響應(yīng),并設(shè)定該handle下一個期望接收的AT響應(yīng)。在實際的應(yīng)用中,COMM處理機通過調(diào)用SIO(Super Input Output chip,超級輸入 輸出芯片)發(fā)送AT指令。較佳地,為避免由于發(fā)送的AT指令在傳輸過程中丟失而導(dǎo)致發(fā)送失敗的問題,本 發(fā)明實施例中,預(yù)先在待發(fā)送的AT指令的結(jié)構(gòu)中設(shè)置有是否重發(fā)AT指令的標識以及重發(fā) AT指令的時間閾值,該時間閾值為發(fā)送AT指令之后未收到AT相應(yīng)的最長設(shè)定時間;COMM 處理機制在發(fā)送AT指令之后的時間閾值內(nèi)未收到與該AT指令相對應(yīng)的AT響應(yīng)時,重新發(fā) 送該AT指令。COMM處理機接收數(shù)據(jù)時,一般具有以下三種情況情況一、中斷觸發(fā),一次接收,數(shù)據(jù)完整并剛好形成一條完整的信息;情況二、中斷觸發(fā),一次接收,數(shù)據(jù)不完整不足以形成一條完整的信息;情況三、中斷觸發(fā),一次接收,數(shù)據(jù)超出一條完整的信息。該三種情況還可能夾雜出現(xiàn),如第一次中斷觸發(fā),接收到一條完整的數(shù)據(jù)和半條 不完整的數(shù)據(jù);第二次中斷觸發(fā),接收到第一次中斷觸發(fā)接收到的半條不完整的數(shù)據(jù)的后 續(xù)30%的數(shù)據(jù);第三次中斷觸發(fā),接收后續(xù)20%的數(shù)據(jù)。上述例子僅僅是一種情況,在實際應(yīng)用中,還包括各種各樣的組合情況,因此, COMM處理機如何正確的將多次中斷觸發(fā)接收到的數(shù)據(jù)拼裝組合成至少一條完整的AT響 應(yīng),則直接決定著AT處理機對AT響應(yīng)的類型的確定,從而影響到后續(xù)handle處理機對AT 響應(yīng)進行處理的準確性。較佳地,為使得COMM處理機更好的將多次中斷接觸接收到的數(shù)據(jù)拼裝成較為 完整AT響應(yīng),本發(fā)明技術(shù)方案中,COMM處理機將每次中斷觸發(fā)接收到的數(shù)據(jù)緩存到緩沖 buffer中,并在緩沖buffer中逐一查找是否包含有多個數(shù)據(jù)結(jié)尾標識,如“/r/n”(當(dāng)一條 數(shù)據(jù)發(fā)送完時都是以“/r/n”結(jié)尾),若有,則將任意兩個“/r/n”之間的數(shù)據(jù)作為一條完整 的AT響應(yīng)發(fā)送給AT處理機,最后將不完整的數(shù)據(jù)繼續(xù)保存在緩沖buffer中,并設(shè)置定時 器;當(dāng)設(shè)定時間到達時,重新接收數(shù)據(jù)并取消定時器,當(dāng)設(shè)定時間沒有到達時有中斷觸發(fā), 則取消該定時器。為更清楚的描述本發(fā)明實施例中COMM處理機對接收到的數(shù)據(jù)進行處理, 以圖3所示的流程圖為例進行描述。參見圖3,為本發(fā)明實施例中COMM處理機接收數(shù)據(jù)的處理流程圖,該流程包括步 驟步驟301、接收中斷觸發(fā)。
步驟302、取消設(shè)定的定時器。步驟303、接收中斷觸發(fā)數(shù)據(jù),并將接收到的中斷觸發(fā)數(shù)據(jù)按照接收先后順序依次 存儲在緩沖buffer中。步驟304、從緩沖buffer接收到的數(shù)據(jù)中依次查找“/r/n”標識。步驟305、判斷該數(shù)據(jù)中是否包含多個“/r/n”標識,若是則執(zhí)行步驟306,否則執(zhí) 行步驟307。步驟306、將任意相鄰的兩個“/r/n”標識之間的數(shù)據(jù)拼接組包成一條完整的AT響 應(yīng),并將得到的一條或多條AT響應(yīng)發(fā)送給AT處理機。步驟307、判斷是否已經(jīng)對緩沖buffer中的數(shù)據(jù)分析完畢,若是則執(zhí)行步驟308, 否則執(zhí)行步驟304。步驟308、判斷緩沖buffer中是否還包含有不完整的數(shù)據(jù),若是則執(zhí)行步驟309, 否則執(zhí)行步驟310。步驟309、為該不完整數(shù)據(jù)設(shè)置定時器,當(dāng)設(shè)定時間達到時,則行步驟302。步驟310、結(jié)束一次中斷觸發(fā)數(shù)據(jù)的接收。在實際應(yīng)用中,AT類型較多,AT處理機在接收到COMM處理機發(fā)送的完整數(shù)據(jù)時, 對該完整數(shù)據(jù)進行分析,并根據(jù)分析結(jié)果與所有的AT類型逐一進行匹配,以確定出該數(shù)據(jù) 的AT類型,由于AT類型的種類繁多,通過該種匹配方式確定出AT類型的工作量較大,耗時 較長,較佳地,為提高AT處理機確定AT類型的效率,本發(fā)明實施例中,還對AT類型做進 一步的劃分,將多個較為近似的AT類型劃分到同一個較大范圍的AT類型中,如發(fā)短信的AT 類型和接收短信的AT類型都歸類到短信AT中;依此,可將AT類型劃分為通用AT、呼叫 AT、短信AT、電話簿AT、補充業(yè)務(wù)AT、數(shù)據(jù)業(yè)務(wù)AT、控制AT、擴展AT、安全選項AT等。為進 一步對AT處理機確定AT類型進行詳細的說明,以如圖4所示的流程圖為例進行說明。參見圖4,為本發(fā)明實施例中AT處理機確定AT類型的流程圖,該流程包括步驟步驟401、接收COMM處理機發(fā)送的AT處理請求,該AT處理請求中攜帶有AT響應(yīng)。步驟402、判斷接收到的AT響應(yīng)是否為通用AT,若是則執(zhí)行步驟412,否則執(zhí)行步 驟 403。步驟403、判斷AT響應(yīng)是否為呼叫AT,若是則執(zhí)行步驟412,否則執(zhí)行步驟404。步驟404、判斷AT響應(yīng)是否為短信AT,若是則執(zhí)行步驟412,否則執(zhí)行步驟405。步驟405、判斷AT響應(yīng)是否為電話簿AT,若是則執(zhí)行步驟412,否則執(zhí)行步驟406。步驟406、判斷AT響應(yīng)是否為補充業(yè)務(wù)AT,若是則執(zhí)行步驟412,否則執(zhí)行步驟
407。步驟407、判斷AT響應(yīng)是否為數(shù)據(jù)業(yè)務(wù)AT,若是則執(zhí)行步驟412,否則執(zhí)行步驟
408。步驟408、判斷AT響應(yīng)是否為控制AT,若是則執(zhí)行步驟412,否則執(zhí)行步驟409。步驟409、判斷AT響應(yīng)是否為擴展AT,若是則執(zhí)行步驟412,否則執(zhí)行步驟410。步驟410、判斷AT響應(yīng)是否為安全選項AT,若是則執(zhí)行步驟412,否則執(zhí)行步驟 411。步驟411、確定接收到的AT響應(yīng)為異常AT響應(yīng),并刪除該AT響應(yīng)。
步驟412、對接收到的AT響應(yīng)進行解析。步驟413、將解析之后的AT響應(yīng)發(fā)送給handle處理機。Handle處理機對數(shù)據(jù)進行處理包括發(fā)送處理與接收處理兩部分,發(fā)送處理與接收 處理相對獨立但又有關(guān)聯(lián),在接收處理時需要根據(jù)發(fā)送處理的發(fā)送機制來進行相應(yīng)的數(shù)據(jù)處理。下面結(jié)合圖5和圖6對handle處理機處理AT的流程進行詳細的描述。參見圖5,為本發(fā)明實施例中handle處理機發(fā)送AT指令的方法流程圖,該流程包 括步驟501、接收應(yīng)用發(fā)送的與該應(yīng)用相對應(yīng)的handle,該handle包括應(yīng)用的ID 值、handle優(yōu)先級、handle的回調(diào)、handle自身的AT指令和該handle期望接收的AT響應(yīng) 序列。步驟502、handle處理機將接收到的handle加入到設(shè)定的handle處理隊列中,并 判斷handle處理隊列中是否有待處理的handle,若有則執(zhí)行步驟503,否則執(zhí)行步驟504。步驟503、將當(dāng)前接收到的handle的優(yōu)先級與handle處理隊列中的所有待處理 handle的優(yōu)先級進行比較,將接收到的handle插入到優(yōu)先級低于該handle的任意一個 handle前面進行排隊,handle處理機向handle處理容器發(fā)送handle處理信號。步驟504、handle處理容器接收handle處理信號。步驟505、handle處理容器判斷handle處理容器是否已滿,若是則執(zhí)行步驟508, 若否則執(zhí)行步驟506。步驟506、清除handle處理信號,并按照排隊順序從handle處理隊列中提取至少 一個handle放入到handle處理容器中,并調(diào)用AT函數(shù)發(fā)送提取的handle攜帶的AT指令。步驟507、判斷handle處理隊列是否為空,若是則執(zhí)行步驟508,否則執(zhí)行步驟 509。步驟508、采用定時器對handle處理信號進行定時,設(shè)定時間到達時,重新向 handle處理容器發(fā)送handle處理信號。步驟509、結(jié)束流程。參見圖6,為本發(fā)明實施例中handle處理機接收并處理AT響應(yīng)的方法流程圖,該 流程包括步驟601、接收AT處理機發(fā)送的AT響應(yīng)。步驟602、將AT響應(yīng)發(fā)送給handle處理容器中第η個handle。步驟603、該AT響應(yīng)是該第η個handle期望的AT響應(yīng)么,若是則執(zhí)行步驟604, 否則執(zhí)行步驟608。步驟604、在該第η個handle中保存該AT響應(yīng)。步驟605、判斷該AT響應(yīng)是該第η個handle期望的AT響應(yīng)序列中最后一個AT響 應(yīng),若是則執(zhí)行步驟606,否則執(zhí)行步驟607。步驟606、采用call back函數(shù)將該第η個handle對應(yīng)的AT響應(yīng)序列組合成完整 的響應(yīng)結(jié)果并發(fā)送給相應(yīng)的應(yīng)用。步驟607、設(shè)置該第η個handle的下一個期望的AT響應(yīng)。步驟608、判斷handle處理容器中的所有handle都已經(jīng)遍歷,若是則執(zhí)行步驟610,否則執(zhí)行步驟609。步驟609、η計算器加一。步驟610 JfAT響應(yīng)發(fā)送給常駐handle處理器,并判斷該常駐handle處理器是否 處理該AT響應(yīng),若是則執(zhí)行步驟612,否則執(zhí)行步驟611。步驟611、確定該AT響應(yīng)為異常響應(yīng),并刪除該AT響應(yīng)。步驟612、結(jié)束流程。基于上述方法流程相同的構(gòu)思,本發(fā)明實施例還提供一種發(fā)送AT指令的裝置和 一種處理AT響應(yīng)的裝置。參見圖7,為本發(fā)明實施例中發(fā)送AT指令的裝置,該裝置包括接收模塊71,用于接收應(yīng)用發(fā)送的與該應(yīng)用相對應(yīng)的句柄handle,該handle攜帶 有待發(fā)送的AT指令;處理模塊72,用于將接收模塊71接收到的handle在設(shè)定的handle處理隊列中進 行排隊;發(fā)送模塊73,用于按照排隊順序,從handle處理隊列中提取至少一個handle放入 到設(shè)定的handle處理容器中,并發(fā)送提取的handle所攜帶的AT指令。處理模塊72具體應(yīng)用為將接收到的handle的優(yōu)先級與handle處理隊列中 待處理的其他handle的優(yōu)先級進行比較,并確定出一個或多個優(yōu)先級低于所述接收到的 handle優(yōu)先級的handle ;將所述接收到的handle插入到確定出的任意一個handle之前進 行排隊。處理模塊72進一步用于,針對handle處理隊列中的每個handle,判斷該handle 被插入handle的次數(shù)是否達到設(shè)定的次數(shù)閾值,若是,則為所述handle設(shè)置用于表征禁止 在該handle前面插入其他handle的標記,或者,將handle的優(yōu)先級調(diào)高。上述各模塊具體如何實現(xiàn)相應(yīng)的功能與前述的方法中的處理方式一致,在此不再 贅述。參見圖8,為本發(fā)明實施例中處理AT響應(yīng)的裝置,該裝置包括接收模塊81,用于接收AT響應(yīng);確定模塊82,用于從設(shè)定的handle處理容器中,確定出當(dāng)前期望接收所述接收模 塊接收到的AT響應(yīng)的一個或多個handle ;發(fā)送模塊83,用于將所述接收模塊81接收到的AT響應(yīng)發(fā)送給確定模塊82確定出 的handle中的其中一個handle。確定模塊82具體應(yīng)用為根據(jù)確定出的一個或多個需要接收的AT響應(yīng)的handle 進入所述handle處理容器的先后順序,確定出最先進入所述handle處理容器的handle ; 并將接收到的AT響應(yīng)發(fā)送給確定出的最先進入所述handle處理容器的handle。發(fā)送模塊83進一步用于,判斷所述接收到的AT響應(yīng)是否為所述handle期望接收 的最后一個AT響應(yīng),若是,則將該handle接收到的AT響應(yīng)整合成一條反饋結(jié)果并發(fā)送給 與該handle對應(yīng)的應(yīng)用;若否,則為該handle設(shè)置下一個期望接收的AT響應(yīng)。接收模塊81進一步用于,若接收到的AT響應(yīng)不為handle處理容器中任何一個 handle所期望接收的AT響應(yīng)時,將接收到的AT響應(yīng)通過發(fā)送模塊83發(fā)送給常駐容器,所 述常駐容器用于處理主動上報事件的handle。
上述模塊具體如何實現(xiàn)其對應(yīng)的功能如前述方法的處理方式一致,在此不再贅 述。本發(fā)明實施例還提供一種移動終端,該移動終端包括COMM處理機,用于接收AT響應(yīng)和發(fā)送AT指令;并在接收AT響應(yīng)時,接收中斷觸 發(fā)數(shù)據(jù),并將接收到的中斷觸發(fā)數(shù)據(jù)拼接組包成完整的一條或多條AT響應(yīng)并輸出;AT處理機,用于針對COMM處理機輸出的每條AT響應(yīng),確定出該AT響應(yīng)的AT類型 并輸出;Handle處理機,用于針對AT處理機輸出的每條AT響應(yīng),從handle處理容器中 確定出一個或多個當(dāng)前期望接收該AT響應(yīng)的handle,并將該AT響應(yīng)發(fā)送給確定出的 handle中的其中一個handle ;以及,用于接收應(yīng)用分發(fā)處理機發(fā)送的handle,并將接收到 的handle在設(shè)定的handle處理隊列中進行排隊;按照排隊順序,從handle處理隊列中提 取至少一個handle放入到設(shè)定的handle處理容器中,并發(fā)送提取的handle所攜帶的AT 指令;應(yīng)用分發(fā)處理機,用于調(diào)用通用接口為應(yīng)用生成相應(yīng)的handle,所述handle攜帶 有待發(fā)送的AT指令并輸出;以及,接收handle處理機發(fā)送的響應(yīng)結(jié)果。COMM處理機將接收到的中斷觸發(fā)數(shù)據(jù)拼接組包成完整的一條或多條AT響應(yīng),具 體包括將接收到的中斷觸發(fā)數(shù)據(jù)按照接收的先后順序存儲在緩沖中;從緩沖接收到的數(shù)據(jù)中查找數(shù)據(jù)結(jié)尾標識;當(dāng)查找到多個結(jié)尾標識時,將任意相鄰的兩個數(shù)據(jù)結(jié)尾標識之間的數(shù)據(jù)拼接組包 成一條完整AT響應(yīng)。本發(fā)明技術(shù)方案并不僅限于處理AT指令的處理,對于其他握手通信協(xié)議的指令 也可采取本發(fā)明提供的技術(shù)方案。本發(fā)明實施例中,一方面,在發(fā)送AT指令時,可以同時發(fā)送handle容器中的多個 handle對應(yīng)的AT指令,提高了發(fā)送AT指令的效率,并且,handle按照優(yōu)先級從高到低的順 序在handle處理隊列中排隊,從而使得在AT指令堆積的情況下能夠及時的處理掉高優(yōu)先 級的handle ;另一方面,在接收AT響應(yīng)時,直接將接收到的AT響應(yīng)發(fā)送給最先進入handle 容器的且需要該AT響應(yīng)的handle,從而將接收到的AT響應(yīng)高效、準確地發(fā)送給需要該AT 響應(yīng)的應(yīng)用,提高了 AT響應(yīng)的分發(fā)效率與準確性,避免了現(xiàn)有技術(shù)中針對一個AT響應(yīng)需要 采用輪詢的方式發(fā)送給需要該AT響應(yīng)的應(yīng)用,從而導(dǎo)致AT響應(yīng)分發(fā)效率較低的問題。顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精 神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍 之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
權(quán)利要求
一種發(fā)送AT指令的方法,其特征在于,包括接收應(yīng)用發(fā)送的與該應(yīng)用相對應(yīng)的句柄handle,該handle攜帶有待發(fā)送的AT指令;將接收到的handle在設(shè)定的handle處理隊列中進行排隊;按照排隊順序,從handle處理隊列中提取至少一個handle放入到設(shè)定的handle處理容器中,并發(fā)送提取的handle所攜帶的AT指令。
2.如權(quán)利要求1所述的方法,其特征在于,所述應(yīng)用發(fā)送的handle通過調(diào)用通用接口 生成,該handle包括該應(yīng)用的標識號、該handle優(yōu)先級、handle回調(diào)、待發(fā)送AT指令和該 handle期望接收的AT響應(yīng)序列。
3.如權(quán)利要求2所述的方法,其特征在于,將接收到的handle在設(shè)定的handle處理隊 列中進行排隊,具體為將接收到的handle的優(yōu)先級與handle處理隊列中待處理的其他handle的優(yōu)先級進 行比較,并確定出一個或多個優(yōu)先級低于接收到的handle優(yōu)先級的handle ;將所述接收到的handle插入到確定出的任意一個handle之前進行排隊。
4.如權(quán)利要求3所述的方法,其特征在于,還包括步驟針對handle處理隊列中的每個handle,判斷該handle被插入handle的次數(shù)是否達到 設(shè)定的次數(shù)閾值,若是,則為該handle設(shè)置用于表征禁止在該handle前面插入其他handle 的標記,或者,將該handle的優(yōu)先級調(diào)高。
5.一種處理AT響應(yīng)的方法,其特征在于,包括接收AT響應(yīng),并從設(shè)定的handle處理容器中確定出當(dāng)前期望接收該AT響應(yīng)的一個或 多個 handle ;將接收到的AT響應(yīng)發(fā)送給確定出的handle中的其中一個handle。
6.如權(quán)利要求5所述的方法,其特征在于,handle為與該handle對應(yīng)的應(yīng)用通過調(diào)用 通用接口生成,handle包括應(yīng)用的標識號、handle的優(yōu)先級、handle回調(diào)、待發(fā)送AT指令 和該handle期望接收的AT響應(yīng)序列。
7.如權(quán)利要求5所述的方法,其特征在于,將接收到的AT響應(yīng)發(fā)送給確定出的handle 中的其中一個handle,具體為根據(jù)確定出的當(dāng)前期望接收所述AT響應(yīng)的一個或多個handle被提取到所述handle 處理容器的先后順序,確定出最先被提取到所述handle處理容器的handle ;并將接收到的 AT響應(yīng)發(fā)送給確定出的最先被提取到所述handle處理容器的handle。
8.如權(quán)利要求5 7任一項所述的方法,其特征在于,將接收到的AT響應(yīng)發(fā)送給確定 出的handle中的其中一個handle之后,還包括步驟判斷所述接收到的AT響應(yīng)是否為接收該AT響應(yīng)的handle期望接收的最后一個AT響 應(yīng),若是,則根據(jù)該handle接收到的AT響應(yīng)向與該handle對應(yīng)的應(yīng)用反饋響應(yīng)結(jié)果;若 否,則為該handle設(shè)置下一個期望接收的AT響應(yīng)。
9.如權(quán)利要求8所述的方法,其特征在于,還包括步驟若接收到的AT響應(yīng)不為所述handle處理容器中任何一個handle所期望接收的AT 響應(yīng)時,將接收到的AT響應(yīng)發(fā)送給常駐容器,所述常駐容器為用于處理主動上報事件的 handle的容器。
10.如權(quán)利要求5所述的方法,其特征在于,接收AT響應(yīng)之前,還包括步驟接收中斷觸發(fā)數(shù)據(jù),并將接收到的中斷觸發(fā)數(shù)據(jù)按照接收先后順序保存在緩沖中; 從緩沖接收到的數(shù)據(jù)中查找數(shù)據(jù)結(jié)尾標識;當(dāng)查找到多個結(jié)尾標識時,將任意相鄰的兩個數(shù)據(jù)結(jié)尾標識之間的數(shù)據(jù)拼接組包成一 條完整的AT響應(yīng)。
11.一種發(fā)送AT指令的裝置,其特征在于,包括接收模塊,用于接收應(yīng)用發(fā)送的與該應(yīng)用相對應(yīng)的句柄handle,該handle攜帶有待發(fā) 送的AT指令;處理模塊,用于將所述接收模塊接收到的handle在設(shè)定的handle處理隊列中進行排隊;發(fā)送模塊,用于按照排隊順序,從handle處理隊列中提取至少一個handle放入到設(shè)定 的handle處理容器中,并發(fā)送提取的handle所攜帶的AT指令。
12.如權(quán)利要求11所述的裝置,其特征在于,所述處理模塊,具體應(yīng)用為將接收到的handle的優(yōu)先級與handle處理隊列中待處理的其他handle的優(yōu)先級進 行比較,并確定出一個或多個優(yōu)先級低于接收到的handle優(yōu)先級的handle ;將所述接收到 的handle插入到確定出的任意一個handle之前進行排隊。
13.一種處理AT響應(yīng)的裝置,其特征在于,包括 接收模塊,用于接收AT響應(yīng);確定模塊,用于從設(shè)定的handle處理容器中確定出當(dāng)前期望接收所述接收模塊接收 到的AT響應(yīng)的一個或多個handle ;發(fā)送模塊,用于將所述接收模塊接收到的AT響應(yīng)發(fā)送給確定模塊確定出的handle中 的其中一個handle。
14.如權(quán)利要求13所述的裝置,其特征在于,所述發(fā)送模塊,具體應(yīng)用為根據(jù)所述確定模塊確定出的當(dāng)前期望接收所述AT響應(yīng)的一個或多個handle被提取到 所述handle處理容器的先后順序,確定出最先被提取到所述handle處理容器的handle ; 并將接收到的AT響應(yīng)發(fā)送給確定出的最先被提取到所述handle處理容器的handle。
15.一種移動終端,其特征在于,包括COMM處理機,用于接收AT響應(yīng)和發(fā)送AT指令;并在接收AT響應(yīng)時,接收中斷觸發(fā)數(shù) 據(jù),并將接收到的中斷觸發(fā)數(shù)據(jù)拼接組包成完整的一條或多條AT響應(yīng)并輸出;AT處理機,用于針對COMM處理機輸出的每條AT響應(yīng),確定出該AT響應(yīng)的AT類型并輸出;Handle處理機,用于針對AT處理機輸出的每條AT響應(yīng),從handle處理容器中確定出 一個或多個當(dāng)前期望接收該AT響應(yīng)的handle,并將該AT響應(yīng)發(fā)送給確定出的handle中 的其中一個handle ;以及,用于接收應(yīng)用分發(fā)處理機發(fā)送的handle,并將接收到的handle 在設(shè)定的handle處理隊列中進行排隊;按照排隊順序,從handle處理隊列中提取至少一個 handle放入到設(shè)定的handle處理容器中,并發(fā)送提取的handle所攜帶的AT指令;應(yīng)用分發(fā)處理機,用于調(diào)用通用接口為應(yīng)用生成相應(yīng)的handle,所述handle攜帶有待 發(fā)送的AT指令并輸出;以及,接收handle處理機發(fā)送的響應(yīng)結(jié)果。
16.如權(quán)利要求15所述的移動終端,其特征在于,所述COMM處理機具體用于 將接收到的中斷觸發(fā)數(shù)據(jù)按照接收的先后順序存儲在緩沖中;從緩沖接收到的數(shù)據(jù)中查找數(shù)據(jù)結(jié)尾標識;當(dāng)查找到多個結(jié)尾標識時,將任意相鄰的兩個數(shù)據(jù)結(jié)尾標識之間的數(shù)據(jù)拼接組包成一 條完整的AT響應(yīng)。
全文摘要
本發(fā)明公開了一種處理AT指令的方法及裝置,以提高處理AT指令的效率。該方法包括接收應(yīng)用發(fā)送的與該應(yīng)用相對應(yīng)的句柄handle,該handle攜帶有待發(fā)送的AT指令;將接收到的handle在設(shè)定的handle處理隊列中進行排隊;按照排隊順序,從handle處理隊列中提取至少一個handle放入到設(shè)定的handle處理容器中進行處理,并發(fā)送提取的handle所攜帶的AT指令。采用本發(fā)明技術(shù)方案,可并行發(fā)送多個handle的AT指令,從而提高了處理AT指令的效率。
文檔編號H04W88/02GK101883345SQ201010216129
公開日2010年11月10日 申請日期2010年6月30日 優(yōu)先權(quán)日2010年6月30日
發(fā)明者劉剛 申請人:青島海信移動通信技術(shù)股份有限公司