本發(fā)明涉及智能終端技術(shù)領(lǐng)域,特別涉及一種ap與modem的交互方法及系統(tǒng)。
背景技術(shù):
android的通話,sim卡相關(guān)操作,數(shù)據(jù)業(yè)務(wù)操作,都是通過ap端發(fā)送消息到modem,modem端由相應(yīng)的模塊,如數(shù)據(jù)業(yè)務(wù)模塊,sim模塊,或者通話模塊進(jìn)行處理,然后將處理后的數(shù)據(jù)返回給android的ap端。在ap端與modem端交互過程中,ap端需要將消息發(fā)送至ril端,ril端將消息轉(zhuǎn)化成at命令,再將at命令發(fā)送到串口。當(dāng)串口中有數(shù)據(jù)的時(shí)候,modem端的串口會(huì)發(fā)生中斷,代表有數(shù)據(jù)需要讀取。modem端讀取數(shù)據(jù),解析數(shù)據(jù),將數(shù)據(jù)發(fā)送給相應(yīng)的模塊處理,然后返回。但是,現(xiàn)有的ril端每將一條at命令發(fā)送給串口的時(shí)候,modem端都會(huì)發(fā)生一次中斷,而當(dāng)modem業(yè)務(wù)比較繁重時(shí),會(huì)使得modem端處理效率的低下,從而導(dǎo)致ap端與modem端交互效率低的問題。
因而現(xiàn)有技術(shù)還有待改進(jìn)和提高。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題在于,針對(duì)現(xiàn)有技術(shù)的不足,提供一種ap與modem的交互方法及系統(tǒng),以解決現(xiàn)有交互方法使得ap端與modem端交互效率低的問題。
為了解決上述技術(shù)問題,本發(fā)明所采用的技術(shù)方案如下:
一種ap與modem的交互方法,其包括:
當(dāng)ap端向modem端發(fā)送消息時(shí),獲取所述消息對(duì)應(yīng)的業(yè)務(wù)類型;
根據(jù)所述業(yè)務(wù)類型在預(yù)設(shè)的多路rild線程中查找與其對(duì)應(yīng)的rild線程;
通過所述rild線程將所述消息發(fā)送至modem端。
所述ap與modem的交互方法,其中,所述當(dāng)ap端向modem端發(fā)送消息時(shí)時(shí),獲取所述消息對(duì)應(yīng)的業(yè)務(wù)類型之前包括:
預(yù)先創(chuàng)建用于ap與modem交互的多路rild線程,并為每路rild線程分配對(duì)應(yīng)的業(yè)務(wù)類型。
所述ap與modem的交互方法,其中,所述多路rild線程同時(shí)運(yùn)行并且每路rild線程維護(hù)一消息通道。
所述ap與modem的交互方法,其中,所述通過所述rild線程將所述消息發(fā)送至modem端具體包括:
將所述消息通過所述rild線程寫入其維護(hù)的消息通道,并通過所述消息通道將所述消息發(fā)送至其對(duì)應(yīng)的信息通道;
監(jiān)聽信息通道接收的所述消息,并將監(jiān)聽到的所述消息寫入預(yù)設(shè)串口以發(fā)送至modem端。
所述ap與modem的交互方法,其中,所述監(jiān)聽信息通道接收的所述消息,并將監(jiān)聽到的所述消息寫入預(yù)設(shè)串口以發(fā)送至modem端之后還包括:
當(dāng)modem向所述ap端反饋數(shù)據(jù)時(shí),接收并解析所述反饋數(shù)據(jù)以確定所述反饋數(shù)據(jù)對(duì)應(yīng)的消息通道;
將解析后的反饋數(shù)據(jù)寫入所述消息通道以通過其對(duì)應(yīng)rild線程反饋至所述ap端。
一種ap與modem的交互系統(tǒng),其包括:ap端、ril端以及modem端;所述ril端包括:
獲取單元,用于當(dāng)ap端向modem端發(fā)送消息時(shí)時(shí),獲取所述消息對(duì)應(yīng)的業(yè)務(wù)類型;
查找單元,用于根據(jù)所述業(yè)務(wù)類型在預(yù)設(shè)的多路rild線程中查找與其對(duì)應(yīng)的rild線程;
發(fā)送單元,用于通過所述rild線程將所述消息發(fā)送至modem端。
所述ap與modem的交互系統(tǒng),其中,所述ril端還包括:
多線程創(chuàng)建單元,用于預(yù)先創(chuàng)建用于ap與modem交互的多路rild線程,并為每路rild線程分配對(duì)應(yīng)的業(yè)務(wù)類型。
所述ap與modem的交互系統(tǒng),其中,所述多路rild線程同時(shí)運(yùn)行并且每路rild線程維護(hù)一消息通道。
所述ap與modem的交互系統(tǒng),其還包括mudx端;
所述發(fā)送單元,具體用于將所述消息通過所述rild線程寫入其維護(hù)的消息通道,并通過所述消息通道將所述消息發(fā)送至其對(duì)應(yīng)的信息通道;
所述mudx端,用于監(jiān)聽信息通道接收的所述消息,并將監(jiān)聽到的所述消息寫入預(yù)設(shè)串口以發(fā)送至modem端。
所述ap與modem的交互系統(tǒng),其中,所述mudx端還用于:
當(dāng)modem向所述ap端反饋數(shù)據(jù)時(shí),接收并解析所述反饋數(shù)據(jù)以確定所述反饋數(shù)據(jù)對(duì)應(yīng)的消息通道;以及將解析后的反饋數(shù)據(jù)寫入所述消息通道以通過其對(duì)應(yīng)rild線程反饋至所述ap端。
有益效果:與現(xiàn)有技術(shù)相比,本發(fā)明提供了一種ap與modem的交互方法及系統(tǒng),所述方法包括:當(dāng)ap端向modem端發(fā)送消息時(shí),獲取所述消息對(duì)應(yīng)的業(yè)務(wù)類型;根據(jù)所述業(yè)務(wù)類型在預(yù)設(shè)的多路rild線程中查找與其對(duì)應(yīng)的rild線程;通過所述rild線程將所述消息發(fā)送至modem端。本發(fā)明通過在ap端向modem端建立多路rild線程,并且每路rild線程處理不同業(yè)務(wù)類型的消息,使得所述modem端一次中斷可以同時(shí)處理多個(gè)不同業(yè)務(wù)類型的消息,提高了ap端和modem端交互的效率。
附圖說明
圖1為本發(fā)明提供的ap與modem的交互方法較佳實(shí)施例的流程圖。
圖2為本發(fā)明提供的ap與modem的交互系統(tǒng)的框架圖。
圖3為本發(fā)明提供的ap與modem的交互系統(tǒng)的結(jié)構(gòu)原理圖。
具體實(shí)施方式
本發(fā)明提供一種ap與modem的交互方法及系統(tǒng),為使本發(fā)明的目的、技術(shù)方案及效果更加清楚、明確,以下參照附圖并舉實(shí)施例對(duì)本發(fā)明進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明中,使用用于表示元件的諸如“模塊”、“部件”或“單元”的后綴僅為了有利于本發(fā)明的說明,其本身并沒有特定的意義。因此,“模塊”、“部件”或“單元”可以混合地使用。
終端設(shè)備可以以各種形式來實(shí)施。例如,本發(fā)明中描述的終端可以包括諸如移動(dòng)電話、智能電話、筆記本電腦、數(shù)字廣播接收器、pda(個(gè)人數(shù)字助理)、pad(平板電腦)、pmp(便攜式多媒體播放器)、導(dǎo)航裝置等等的移動(dòng)終端以及諸如數(shù)字tv、臺(tái)式計(jì)算機(jī)等等的固定終端。然而,本領(lǐng)域技術(shù)人員將理解的是,除了特別用于移動(dòng)目的的元件之外,根據(jù)本發(fā)明的實(shí)施方式的構(gòu)造也能夠應(yīng)用于固定類型的終端。
下面結(jié)合附圖,通過對(duì)實(shí)施例的描述,對(duì)發(fā)明內(nèi)容作進(jìn)一步說明。
請(qǐng)參照?qǐng)D1,圖1為本發(fā)明提供的ap與modem的交互方法的較佳實(shí)施例的流程圖。所述方法應(yīng)用于如圖2交互方法系統(tǒng),所述方法具體包括:
s100、當(dāng)ap端向modem端發(fā)送消息時(shí),獲取所述消息對(duì)應(yīng)的業(yè)務(wù)類型。
具體地,所述ap(applicationprocess)用于負(fù)責(zé)用戶界面及android操作系統(tǒng)的運(yùn)行,所述modem用于射頻通信(語(yǔ)音通話、數(shù)據(jù)業(yè)務(wù)、網(wǎng)絡(luò)連接)等底層功能。所述ap端向modem端發(fā)送消息指的是所述ap端將所述消息發(fā)送至rild線程,在通過所述rild線程發(fā)送至modem端的串口,再通過所述串口與所述modem進(jìn)行通訊。
進(jìn)一步,所述消息可以為android的通話,sim卡相關(guān)操作以及數(shù)據(jù)業(yè)務(wù)操作等,相應(yīng)的,所述modem端也設(shè)置相應(yīng)的模塊以對(duì)不同的業(yè)務(wù)進(jìn)行處理。那么,在ap端向modem端發(fā)送消息時(shí),可以獲取所述消息對(duì)應(yīng)的業(yè)務(wù)類型,其中,所述業(yè)務(wù)類型可以包括android的通話,sim卡相關(guān)操作以及數(shù)據(jù)業(yè)務(wù)操作。在實(shí)際應(yīng)用中,所述消息對(duì)應(yīng)的業(yè)務(wù)類型由rild線程進(jìn)行識(shí)別。相應(yīng)的,所述當(dāng)ap端向modem端發(fā)送消息時(shí),獲取所述消息對(duì)應(yīng)的業(yè)務(wù)類型具體可以包括:
s101、當(dāng)ap端向所述modem發(fā)送消息時(shí),所述ap端將所述消息發(fā)送ril端;
s102、所述ril端獲取所述消息對(duì)應(yīng)的業(yè)務(wù)類型,其中,所述業(yè)務(wù)類型至少包括:android的通話,sim卡相關(guān)操作以及數(shù)據(jù)業(yè)務(wù)操作。
具體地,所述ril端為用于承接所述androidap端和modem端的一個(gè)模塊,所述模塊用于將androidap端轉(zhuǎn)發(fā)至modem端。
s200、根據(jù)所述業(yè)務(wù)類型在預(yù)設(shè)的多路rild線程中查找與其對(duì)應(yīng)的rild線程。
具體地,所述多路rild線程為預(yù)先建立,用于將ap端發(fā)送的消息轉(zhuǎn)發(fā)至modem端進(jìn)程。每路rild線程用于轉(zhuǎn)發(fā)一類業(yè)務(wù)類型的消息,即多路rild線程與業(yè)務(wù)類型之間存在一一對(duì)應(yīng)的關(guān)系。也就是說,在ap端與modem端之間交互通訊之前,需要預(yù)先建立多路rild線程,并且為每路rild線程分別對(duì)應(yīng)一個(gè)業(yè)務(wù)類型。
示例性的,所述當(dāng)ap端向所述modem發(fā)送消息時(shí),所述ap端將所述消息發(fā)送ril端之前可以包括:
s001、預(yù)先創(chuàng)建用于ap與modem交互的多路rild線程,并為每路rild線程分配對(duì)應(yīng)的業(yè)務(wù)類型。
具體地,所述創(chuàng)建用于ap與modem交互的多路rild線程可以是根據(jù)所述ap端發(fā)送業(yè)務(wù)消息的類型的數(shù)量進(jìn)行創(chuàng)建,并在所述多路rild線程與業(yè)務(wù)類型之間建立一一對(duì)應(yīng)的關(guān)系,所述多路rild線程可以記為ril_cmd_1,ril_cmd_2,...,ril_cmd_n。例如,所述消息的業(yè)務(wù)類型包括android的通話,sim卡相關(guān)操作以及數(shù)據(jù)業(yè)務(wù)操作,相應(yīng)的創(chuàng)建3路rild線程,分別記為ril_cmd_1、ril_cmd_2和ril_cmd_3,并且所述ril_cmd_1對(duì)應(yīng)android的通話,ril_cmd_2對(duì)應(yīng)sim卡相關(guān)操作以及ril_cmd_3對(duì)應(yīng)數(shù)據(jù)業(yè)務(wù)操作。在實(shí)際應(yīng)用中,可以將所述多路rild線程與業(yè)務(wù)類型的對(duì)應(yīng)關(guān)系存儲(chǔ)于列表內(nèi)以形成多路rild線程列表,當(dāng)根據(jù)業(yè)務(wù)類型查找其對(duì)應(yīng)的rild線程時(shí),可以在所述多路rild線程列表中查找,這樣可以簡(jiǎn)單快速的確定每個(gè)消息對(duì)應(yīng)的rild線程。
進(jìn)一步,當(dāng)所述ap端與所述modem端之間存在多路rild線程時(shí),所述多路rild線程可以同時(shí)運(yùn)行,這樣modem可以同時(shí)處理多條不同業(yè)務(wù)類型的消息,以提高modem的處理效率,進(jìn)而提高ap端與modem端的交互效率。
s300、通過所述rild線程將所述消息發(fā)送至modem端。
具體地,所述rild線程將所述消息發(fā)送至modem端指的是根據(jù)消息對(duì)應(yīng)的業(yè)務(wù)類型,確定其對(duì)應(yīng)的rild線程,通過所述rild線程發(fā)送至modem。在實(shí)際應(yīng)用中,每路rild線程均可以負(fù)責(zé)維護(hù)一個(gè)與其對(duì)應(yīng)的消息通道,所述消息通道可以為一個(gè)文件。也就是說,當(dāng)確定所述消息對(duì)應(yīng)的rild線程時(shí),所述rild線程將所述消息發(fā)送到其維護(hù)的消息通道ptycmd,多個(gè)線程對(duì)應(yīng)的多個(gè)消息通道可分別記為ptycmd1,ptycmd2,...,ptycmdn。也就是,所述rild線程將所述消息發(fā)送至其對(duì)應(yīng)的文件中。因?yàn)槎嗦肪€程是同時(shí)運(yùn)行的,所以在同一時(shí)間有可能有多個(gè)線程在寫不同的文件,進(jìn)而同一時(shí)間的發(fā)送效率將得到提升。
示例性,所述通過所述rild線程將所述消息發(fā)送至modem端具體可以包括:
s301、將所述消息通過所述rild線程寫入其維護(hù)的消息通道,并通過所述消息通道將所述消息發(fā)送至其對(duì)應(yīng)的信息通道;
s302、監(jiān)聽信息通道接收的所述消息,并將監(jiān)聽到所述消息寫入預(yù)設(shè)串口以發(fā)送至modem端。
具體地,所述rild線程將所述消息轉(zhuǎn)換為at指令,將所述at指令寫入其維護(hù)的消息通道。并且,所述消息通道與一個(gè)信息通道相對(duì)應(yīng),所述信息通道用于將其對(duì)應(yīng)的消息通道內(nèi)的at指令發(fā)送至modem的串口,以將所述at指令發(fā)送至modem端。在實(shí)際應(yīng)用中,所述信息通道與所述消息通道一一對(duì)應(yīng)的,并且所述信息通道可以由muxd端進(jìn)行管理。也就是說,所述muxd端同時(shí)偵聽多個(gè)信息通道,分別記為dlc1,dlc2,...,dlcn;當(dāng)監(jiān)聽到信息通道有數(shù)據(jù)讀取時(shí),muxd端將所述信息通道的數(shù)據(jù)讀出來并寫到ttyc0串口中以實(shí)現(xiàn)將所述at指令發(fā)送至modem端。在本實(shí)施例中,由于所述rild線程為多路rild線程,從而所述muxd端可以同時(shí)偵聽到多個(gè)信息通道是否有數(shù)據(jù)讀取,當(dāng)有數(shù)據(jù)來臨的時(shí)候,muxd端將多個(gè)通道的數(shù)據(jù)讀出來,然后同時(shí)將所述多數(shù)據(jù)寫到ttyc0串口中,實(shí)現(xiàn)同一時(shí)間的發(fā)送多個(gè)消息。
在本發(fā)明的一個(gè)實(shí)施例中,所述ap與modem的交互方法還可以包括:
s400、當(dāng)modem向所述ap端反饋數(shù)據(jù)時(shí),modem端接收并解析所述反饋數(shù)據(jù)以確定所述反饋數(shù)據(jù)對(duì)應(yīng)的消息通道;
s500、將解析后的反饋數(shù)據(jù)寫入所述消息通道以通過其對(duì)應(yīng)rild線程反饋至所述ap端。
具體地,當(dāng)modem端向ap端反饋數(shù)據(jù)時(shí),modem端的ttyc0串口發(fā)生中斷,此時(shí),所述muxd端將所述串口數(shù)據(jù)提取,并根據(jù)所述數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)類型確定其響應(yīng)的消息通道,并將所述數(shù)據(jù)寫入所述消息通道。所述消息通道對(duì)應(yīng)的rild線程讀取所述數(shù)據(jù),將數(shù)據(jù)返回給androidap端。
本發(fā)明還提供了一種ap與modem的交互系統(tǒng),如圖3所示,其包括:ap端100、ril端200以及modem端300;所述ril端200包括:
獲取單元201,用于當(dāng)ap端向modem端發(fā)送消息時(shí)時(shí),獲取所述消息對(duì)應(yīng)的業(yè)務(wù)類型;
查找單元202,用于根據(jù)所述業(yè)務(wù)類型在預(yù)設(shè)的多路rild線程中查找與其對(duì)應(yīng)的rild線程;
發(fā)送單元203,用于通過所述rild線程將所述消息發(fā)送至modem端。
所述ap與modem的交互系統(tǒng),其中,所述ril端還包括:
多線程創(chuàng)建單元,用于預(yù)先創(chuàng)建用于ap與modem交互的多路rild線程,并為每路rild線程分配對(duì)應(yīng)的業(yè)務(wù)類型。
所述ap與modem的交互系統(tǒng),其中,所述多路rild線程同時(shí)運(yùn)行并且每路rild線程維護(hù)一消息通道。
所述ap與modem的交互系統(tǒng),其還包括mudx端400;
所述發(fā)送單元,具體用于將所述消息通過所述rild線程寫入其維護(hù)的消息通道,并通過所述消息通道將所述消息發(fā)送至其對(duì)應(yīng)的信息通道;
所述mudx端,用于監(jiān)聽信息通道接收的所述消息,并將監(jiān)聽到的所述消息寫入預(yù)設(shè)串口以發(fā)送至modem端。
所述ap與modem的交互系統(tǒng),其中,所述mudx端還用于:
當(dāng)modem向所述ap端反饋數(shù)據(jù)時(shí),接收并解析所述反饋數(shù)據(jù)以確定所述反饋數(shù)據(jù)對(duì)應(yīng)的消息通道;以及將解析后的反饋數(shù)據(jù)寫入所述消息通道以通過其對(duì)應(yīng)rild線程反饋至所述ap端。
上述ap與modem的交互系統(tǒng)的各個(gè)模塊在上述方法中已經(jīng)詳細(xì)說明,在這里就不再一一陳述。
在本發(fā)明所提供的實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng)和方法,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述模塊的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用硬件加軟件功能單元的形式實(shí)現(xiàn)。
上述以軟件功能單元的形式實(shí)現(xiàn)的集成的單元,可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。上述軟件功能單元存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)或處理器(processor)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的部分步驟。而前述的存儲(chǔ)介質(zhì)包括:u盤、移動(dòng)硬盤、只讀存儲(chǔ)器(read-onlymemory,rom)、隨機(jī)存取存儲(chǔ)器(randomaccessmemory,ram)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
最后應(yīng)說明的是:以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。