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