機(jī)卡分離式終端上高速讀寫(xiě)sim卡的方法及裝置制造方法
【專利摘要】本發(fā)明公開(kāi)了一種機(jī)卡分離式終端上高速讀寫(xiě)SIM卡的方法及裝置,該方法包括以下步驟:創(chuàng)建用于保存SIM卡上的配置數(shù)據(jù)的緩存區(qū),構(gòu)造用于實(shí)現(xiàn)SIM卡與終端配置數(shù)據(jù)轉(zhuǎn)換的映射字典;根據(jù)讀寫(xiě)標(biāo)識(shí)和數(shù)據(jù)形態(tài)標(biāo)識(shí),調(diào)用相應(yīng)的讀、寫(xiě)卡接口,導(dǎo)入配置文件的參數(shù)索引;查找緩存區(qū),如果其內(nèi)存在與參數(shù)索引對(duì)應(yīng)的數(shù)據(jù),則執(zhí)行讀、寫(xiě)緩存區(qū),并完成或更新SIM卡配置;否則,將SIM卡上的相應(yīng)數(shù)據(jù)填入緩存區(qū)并進(jìn)行數(shù)據(jù)轉(zhuǎn)換,或?qū)⒔K端上的相應(yīng)數(shù)據(jù)進(jìn)行數(shù)據(jù)轉(zhuǎn)換并填入緩存區(qū),然后執(zhí)行讀、寫(xiě)SIM卡操作,實(shí)現(xiàn)配置或更新SIM卡。本發(fā)明通過(guò)采用讀、寫(xiě)卡通用接口和創(chuàng)建緩存區(qū),克服了接口單一的缺陷,減少了直接讀SIM卡次數(shù),使SIM卡的讀寫(xiě)更方便靈活、安全可靠,速度也更快。
【專利說(shuō)明】機(jī)卡分離式終端上高速讀寫(xiě)SIM卡的方法及裝置
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)據(jù)通信領(lǐng)域,具體涉及機(jī)卡分離式終端上高速讀寫(xiě)SM卡的方法及 裝直。
【背景技術(shù)】
[0002] 隨著增值服務(wù)、個(gè)性化服務(wù)的興起,國(guó)內(nèi)電信運(yùn)營(yíng)商迫切需求一種能真正實(shí)現(xiàn)業(yè) 務(wù)開(kāi)通零接觸型家庭網(wǎng)關(guān)。機(jī)卡分離型家庭網(wǎng)關(guān)能夠把配置數(shù)據(jù)從家庭網(wǎng)關(guān)中分離出來(lái), 獨(dú)立存儲(chǔ)于SM卡上,有效地解決了業(yè)務(wù)零配置開(kāi)通遇到的瓶頸。這種家庭網(wǎng)關(guān),設(shè)備上電 后,需要同步家庭網(wǎng)關(guān)與SIM卡的數(shù)據(jù);同時(shí),在對(duì)家庭網(wǎng)關(guān)進(jìn)行業(yè)務(wù)配置時(shí),也需要同步 兩者之間的數(shù)據(jù),因此需要對(duì)SIM卡進(jìn)行頻繁的讀寫(xiě)操作。
[0003] 目前的作法是直接對(duì)SIM卡進(jìn)行讀寫(xiě)操作。該種方法存在一些不足之處:
[0004] (1)接口單一,只能針對(duì)單一的數(shù)據(jù)形態(tài),無(wú)法適應(yīng)不同數(shù)據(jù)形態(tài)需求的應(yīng)用程序 調(diào)用;
[0005] (2)讀寫(xiě)操作速度慢;
[0006] (3)頻繁地對(duì)SM卡進(jìn)行讀寫(xiě)操作,可能會(huì)導(dǎo)致SM的損壞,網(wǎng)關(guān)配置丟失,用戶定 制的業(yè)務(wù)中斷,從而影響用戶對(duì)電信運(yùn)營(yíng)商服務(wù)的滿意度。
【發(fā)明內(nèi)容】
[0007] 本發(fā)明所要解決的技術(shù)問(wèn)題是SIM卡讀寫(xiě)接口單一、操作速度慢、SIM容易損壞的 問(wèn)題。
[0008] 為了解決上述技術(shù)問(wèn)題,本發(fā)明所采用的技術(shù)方案是提供一種機(jī)卡分離式終端上 高速讀寫(xiě)SIM卡的方法及裝置,該方法包括以下步驟:
[0009] 步驟Α100、創(chuàng)建用于保存SM卡上的配置數(shù)據(jù)的緩存區(qū),構(gòu)造用于實(shí)現(xiàn)SM卡配置 數(shù)據(jù)與終端配置數(shù)據(jù)相互轉(zhuǎn)換的映射字典;
[0010] 步驟Α200、根據(jù)終端上外部應(yīng)用程序所攜帶的讀寫(xiě)標(biāo)識(shí)和數(shù)據(jù)形態(tài)標(biāo)識(shí),調(diào)用相 應(yīng)的讀、寫(xiě)卡接口,導(dǎo)入配置文件的參數(shù)索引;
[0011] 步驟Α300、查找所述緩存區(qū),如果所述緩存區(qū)內(nèi)存在與參數(shù)索引對(duì)應(yīng)的數(shù)據(jù),則執(zhí) 行讀、寫(xiě)緩存區(qū),并完成或更新SIM卡配置;否則,將SIM卡上的相應(yīng)配置數(shù)據(jù)填入所述緩 存區(qū)并進(jìn)行相應(yīng)的數(shù)據(jù)轉(zhuǎn)換,或者將終端上的相應(yīng)配置數(shù)據(jù)進(jìn)行數(shù)據(jù)轉(zhuǎn)換并填入所述緩存 區(qū),然后執(zhí)行讀、寫(xiě)SIM卡操作,完成配置或更新SIM卡。
[0012] 在上述方法中,步驟Α100中創(chuàng)建的緩存區(qū),在系統(tǒng)上電時(shí)不統(tǒng)一初始化;當(dāng)系統(tǒng) 斷電后,所述緩存區(qū)自動(dòng)釋放;在以下情況發(fā)生時(shí),對(duì)所述緩存區(qū)進(jìn)行初始化:
[0013] 初次進(jìn)行讀、寫(xiě)SIM卡操作時(shí),對(duì)所述緩存區(qū)進(jìn)行初始化:
[0014] 在后續(xù)進(jìn)行讀SIM卡操作時(shí),若對(duì)應(yīng)的緩存區(qū)無(wú)數(shù)據(jù),則將SIM卡上的配置數(shù)據(jù)讀 出填入對(duì)應(yīng)的緩存區(qū),然后對(duì)其進(jìn)行初始化并進(jìn)行相應(yīng)的數(shù)據(jù)轉(zhuǎn)換;
[0015] 在后續(xù)進(jìn)行寫(xiě)SIM卡操作時(shí),若對(duì)應(yīng)的緩存區(qū)無(wú)數(shù)據(jù),則將待更新的配置數(shù)據(jù)進(jìn) 行相應(yīng)的數(shù)據(jù)轉(zhuǎn)換并填入對(duì)應(yīng)的緩存區(qū),然后對(duì)其進(jìn)行初始化。
[0016] 在上述方法中,步驟A200包括以下步驟:
[0017] 步驟A201、檢查SM卡在線狀態(tài),若SM卡不在線,則執(zhí)行步驟A202 ;否則執(zhí)行步 驟 A203 ;
[0018] 步驟A202、清空所述緩存區(qū)內(nèi)的所有數(shù)據(jù),退出;
[0019] 步驟A203、根據(jù)外部應(yīng)用程序所攜帶的讀寫(xiě)標(biāo)識(shí)和數(shù)據(jù)形態(tài)標(biāo)識(shí),調(diào)用相應(yīng)的讀、 寫(xiě)卡接口,導(dǎo)入配置文件的參數(shù)索引;
[0020] 所述讀寫(xiě)標(biāo)識(shí)包括讀SM卡標(biāo)識(shí)和寫(xiě)SM卡標(biāo)識(shí),讀SM卡標(biāo)識(shí)用于在進(jìn)行數(shù)據(jù) 轉(zhuǎn)換時(shí),將SIM卡數(shù)據(jù)格式轉(zhuǎn)換成網(wǎng)關(guān)數(shù)據(jù)格式;寫(xiě)SIM卡標(biāo)識(shí)用于在進(jìn)行數(shù)據(jù)轉(zhuǎn)換時(shí),將 網(wǎng)關(guān)數(shù)據(jù)格式轉(zhuǎn)換成SIM卡數(shù)據(jù)格式;
[0021] 所述數(shù)據(jù)形態(tài)標(biāo)識(shí)包括單個(gè)文件操作標(biāo)識(shí)和單個(gè)參數(shù)操作標(biāo)識(shí);
[0022] 所述參數(shù)索引包括文件名和參數(shù)名,文件名用于表示要操作的配置文件;參數(shù)名 用于表示要操作的配置文件中的參數(shù)。
[0023] 在上述方法中,所述映射字典由一個(gè)二維數(shù)組transValue [m] [η]組成,二維數(shù)組 transValue[m] [η]的每一個(gè)元素對(duì)應(yīng)一個(gè)參數(shù)名,其中m為0或l,m = 0對(duì)應(yīng)終端上的配 置參數(shù),m = 1對(duì)應(yīng)SIM卡上的配置參數(shù),η為自然數(shù),表示第η個(gè)配置參數(shù);transValue [0] [η]對(duì)應(yīng)終端上的第η個(gè)配置參數(shù)的參數(shù)值;transValue [1] [η]對(duì)應(yīng)SIM卡上的第η個(gè)配 置參數(shù)的參數(shù)值,transValue[0] [η]和transValue[1] [η]對(duì)應(yīng)于同一個(gè)配置參數(shù)的參數(shù) 值;步驟Α300中的數(shù)據(jù)轉(zhuǎn)換的方法如下:
[0024] 依據(jù)導(dǎo)入的參數(shù)索引在所述映射字典中查找對(duì)應(yīng)的參數(shù)值是否存在,若不存在, 則退出;否則,判斷讀寫(xiě)標(biāo)識(shí),若讀寫(xiě)標(biāo)識(shí)為讀SIM卡標(biāo)識(shí),則根據(jù)參數(shù)名在映射字典找到 相應(yīng)transValue [1] [η],然后將參數(shù)值轉(zhuǎn)換為transValue [0] [η]對(duì)應(yīng)的參數(shù)值;若讀寫(xiě)標(biāo) 識(shí)為寫(xiě)SIM卡標(biāo)識(shí),則根據(jù)參數(shù)名在映射字典找到相應(yīng)transValue [0] [η],然后將參數(shù)值 轉(zhuǎn)換為transValue[1] [η]對(duì)應(yīng)的參數(shù)值。
[0025] 在上述方法中,步驟Α300中,所述讀SM卡操作包括以下步驟:
[0026] 步驟Α311、從讀卡接口導(dǎo)入SM卡上的配置數(shù)據(jù)的參數(shù)索引;
[0027] 步驟Α312、根據(jù)上述參數(shù)索引中的參數(shù)名查找緩存區(qū)內(nèi)是否存在對(duì)應(yīng)的數(shù)據(jù),若 存在則執(zhí)行步驟Α314 ;否則執(zhí)行步驟Α313 ;
[0028] 步驟Α313、從SM卡上讀出配置文件的流數(shù)據(jù)并填入緩存區(qū),完成緩存區(qū)的初始 化,轉(zhuǎn)步驟Α314 ;
[0029] 步驟A314、從緩存區(qū)中讀出文件流數(shù)據(jù),分解出每一個(gè)參數(shù)及其參數(shù)值填入一個(gè) 與映射字典結(jié)構(gòu)相同的二維數(shù)組中;
[0030] 步驟Α315、根據(jù)參數(shù)名查找映射字典中對(duì)應(yīng)的參數(shù)值并進(jìn)行比對(duì),如果二者不一 致則執(zhí)行步驟Α316 ;否則執(zhí)行步驟Α317 ;
[0031] 步驟Α316、將二維數(shù)組中相應(yīng)參數(shù)的參數(shù)值轉(zhuǎn)換為映射字典對(duì)應(yīng)的參數(shù)值并保存 在緩沖區(qū)內(nèi);
[0032] 步驟Α317、從緩沖區(qū)內(nèi)讀取配置數(shù)據(jù),根據(jù)數(shù)據(jù)形態(tài)標(biāo)識(shí)向終端輸出相應(yīng)的參數(shù) 值或結(jié)構(gòu)體。
[0033] 在上述方法中,步驟Α300中,高速寫(xiě)SM卡操作包括以下步驟:
[0034] 步驟A321、從讀卡接口導(dǎo)入終端上待更新配置數(shù)據(jù);
[0035] 步驟A322、從緩存區(qū)讀出與待更新配置數(shù)據(jù)相對(duì)應(yīng)的參數(shù)值;
[0036] 步驟A323、比較緩存區(qū)讀出的參數(shù)值與待更新配置數(shù)據(jù)是否一致,若一致則退出; 否則,執(zhí)行步驟A324 ;
[0037] 步驟A324、根據(jù)待更新配置數(shù)據(jù)的參數(shù)名查找映射字典,并進(jìn)行比對(duì),如果二者不 一致,則執(zhí)行步驟A325 ;否則執(zhí)行步驟A326 ;
[0038] 步驟A325、利用映射字典將待更新配置數(shù)據(jù)轉(zhuǎn)換為與SIM卡對(duì)應(yīng)的參數(shù)值,并保 存在緩沖區(qū)內(nèi);
[0039] 步驟A326、將緩沖區(qū)內(nèi)的數(shù)據(jù)轉(zhuǎn)換成文件流形式,更新SIM卡。
[0040] 在上述方法中,在進(jìn)行數(shù)據(jù)轉(zhuǎn)換時(shí),當(dāng)數(shù)據(jù)形態(tài)標(biāo)識(shí)為單個(gè)參數(shù)操作標(biāo)識(shí)時(shí),每次 只能轉(zhuǎn)換一個(gè)參數(shù);當(dāng)數(shù)據(jù)形態(tài)標(biāo)識(shí)為單個(gè)文件操作標(biāo)識(shí)時(shí),一次批量獲取多個(gè)參數(shù),并利 用映射字典進(jìn)行批量轉(zhuǎn)換。
[0041] 在上述方法中,步驟A300中,待更新配置數(shù)據(jù)與映射字典中參數(shù)值進(jìn)行比對(duì)時(shí), 如果數(shù)據(jù)形態(tài)標(biāo)識(shí)為單個(gè)參數(shù)操作標(biāo)識(shí),只需比較相應(yīng)的參數(shù)值是否相等;當(dāng)數(shù)據(jù)形態(tài)標(biāo) 識(shí)為單個(gè)文件操作標(biāo)識(shí),則需要先將導(dǎo)入的文件結(jié)構(gòu)體數(shù)據(jù)拆分到一個(gè)二維數(shù)組,再對(duì)每 個(gè)參數(shù)值逐一比較。
[0042] 機(jī)卡分離式終端上高速讀寫(xiě)SM卡的裝置包括:
[0043] 讀、寫(xiě)卡接口;
[0044] 讀、寫(xiě)卡模塊,根據(jù)外部應(yīng)用程序所攜帶的讀寫(xiě)標(biāo)識(shí)和數(shù)據(jù)形態(tài)標(biāo)識(shí),調(diào)用相應(yīng)的 讀、寫(xiě)卡接口,并導(dǎo)入配置文件的參數(shù)索引;
[0045] 緩存模塊,其上設(shè)有用于保存SM卡上的配置數(shù)據(jù)的緩存區(qū)和用于實(shí)現(xiàn)SM卡配 置數(shù)據(jù)與終端配置數(shù)據(jù)相互轉(zhuǎn)換的映射字典,根據(jù)配置文件的參數(shù)索引查找所述緩存區(qū), 如果所述緩存區(qū)內(nèi)存在與參數(shù)索引對(duì)應(yīng)的數(shù)據(jù),則執(zhí)行讀、寫(xiě)緩存區(qū),并完成或更新SIM卡 配置;否則,將SIM卡上的相應(yīng)配置數(shù)據(jù)填入所述緩存區(qū)并進(jìn)行相應(yīng)的數(shù)據(jù)轉(zhuǎn)換,或者將終 端上的相應(yīng)配置數(shù)據(jù)進(jìn)行數(shù)據(jù)轉(zhuǎn)換并填入所述緩存區(qū),然后執(zhí)行讀、寫(xiě)SIM卡操作,完成配 置或更新SIM卡。
[0046] 本發(fā)明采用了通用的讀寫(xiě)卡接口,可適配不同形態(tài)的數(shù)據(jù)形態(tài)以供不同外部應(yīng)用 程序自行選擇,使用方便靈活;高速全面的數(shù)據(jù)轉(zhuǎn)換方法,有效的保證了設(shè)備側(cè)和SIM卡側(cè) 配置信息的一致性;在讀寫(xiě)SIM卡時(shí),引入高速緩存機(jī)制,大幅度減少SIM卡的I/O操作,既 提升了設(shè)備的響應(yīng)速度,又能更好的保護(hù)SIM卡。
【專利附圖】
【附圖說(shuō)明】
[0047] 圖1為本發(fā)明提供的SIM卡高速讀寫(xiě)卡的裝置結(jié)構(gòu)示意圖;
[0048] 圖2為本發(fā)明中SM卡讀卡流程圖;
[0049] 圖3為本發(fā)明中SM卡寫(xiě)卡流程圖。
【具體實(shí)施方式】
[0050] 下面結(jié)合說(shuō)明書(shū)附圖和具體實(shí)施例對(duì)本發(fā)明做出詳細(xì)的說(shuō)明。
[0051] 如圖1所示,本發(fā)明提供的SM卡高速讀寫(xiě)裝置包括以下三部分:讀、寫(xiě)卡接口 10 以及讀、寫(xiě)卡模塊20和緩存模塊30。讀、寫(xiě)卡模塊20包括讀卡單元21和寫(xiě)卡單元22 ;緩 存模塊30包括緩存區(qū)31、數(shù)據(jù)轉(zhuǎn)換單元32和映射字典33。
[0052] 讀、寫(xiě)卡接口 10用于導(dǎo)入配置文件的參數(shù)索引和待更新配置數(shù)據(jù)的接口。
[0053] 讀、寫(xiě)卡模塊20根據(jù)外部應(yīng)用程序所攜帶的讀寫(xiě)標(biāo)識(shí)和數(shù)據(jù)形態(tài)標(biāo)識(shí),調(diào)用相應(yīng) 的讀、寫(xiě)卡接口,并導(dǎo)入配置文件的參數(shù)索引;
[0054] 讀卡單元21,用于將參數(shù)索引對(duì)應(yīng)的SM卡上相應(yīng)文件流數(shù)據(jù)存到緩存模塊30的 緩存區(qū)31內(nèi)和讀出該緩存區(qū)對(duì)應(yīng)的配置數(shù)據(jù)。
[0055] 寫(xiě)卡單元22,用于將待更新配置數(shù)據(jù)和對(duì)應(yīng)的緩存區(qū)內(nèi)SM卡上數(shù)據(jù)進(jìn)行對(duì)比, 不一致時(shí)將待更新配置數(shù)據(jù)保存到緩存區(qū),并批量將待更新數(shù)據(jù)寫(xiě)進(jìn)SIM卡。
[0056] 緩存模塊30,其上設(shè)有用于保存SM卡上的配置數(shù)據(jù)的緩存區(qū)31和用于實(shí)現(xiàn)SM 卡配置數(shù)據(jù)與終端配置數(shù)據(jù)相互轉(zhuǎn)換的映射字典33,根據(jù)配置文件的參數(shù)索引查找所述緩 存區(qū),如果所述緩存區(qū)內(nèi)存在與參數(shù)索引對(duì)應(yīng)的數(shù)據(jù),則執(zhí)行讀、寫(xiě)緩存區(qū),并完成或更新 SM卡配置;否則,將SM卡上的相應(yīng)配置數(shù)據(jù)填入所述緩沖區(qū),并在數(shù)據(jù)轉(zhuǎn)換單元32中利 用映射字典33進(jìn)行相應(yīng)的數(shù)據(jù)轉(zhuǎn)換,或者將終端上的相應(yīng)配置數(shù)據(jù)在數(shù)據(jù)轉(zhuǎn)換單元32中 利用映射字典33進(jìn)行相應(yīng)的數(shù)據(jù)轉(zhuǎn)換,并填入緩沖區(qū)31,然后執(zhí)行讀、寫(xiě)SIM卡操作,完成 配置或更新SM卡。
[0057] 下面以應(yīng)用本發(fā)明的機(jī)卡分離型家庭網(wǎng)關(guān)為實(shí)施例對(duì)本發(fā)明進(jìn)行說(shuō)明,本發(fā)明提 供的SIM卡高速讀寫(xiě)方法主要包括以下步驟:
[0058] 步驟A100、創(chuàng)建用于保存SM卡上的配置數(shù)據(jù)的緩存區(qū),構(gòu)造用于實(shí)現(xiàn)SM卡配置 數(shù)據(jù)與家庭網(wǎng)關(guān)配置數(shù)據(jù)相互轉(zhuǎn)換的映射字典。
[0059] 由于SIM卡文件參數(shù)比較多,在系統(tǒng)上電時(shí),新創(chuàng)建的緩存區(qū)不統(tǒng)一初始化,避免 對(duì)家庭網(wǎng)關(guān)造成壓力,延長(zhǎng)家庭網(wǎng)關(guān)上電啟動(dòng)時(shí)間;當(dāng)系統(tǒng)斷電后,所述緩存區(qū)自動(dòng)釋放; 在以下情況發(fā)生時(shí),對(duì)所述緩存區(qū)進(jìn)行初始化:
[0060] 初次進(jìn)行讀、寫(xiě)SIM卡操作時(shí),對(duì)所述緩存區(qū)進(jìn)行初始化;
[0061] 在后續(xù)進(jìn)行讀SIM卡操作時(shí),若對(duì)應(yīng)的緩存區(qū)無(wú)數(shù)據(jù),則將SIM卡上的配置數(shù)據(jù)讀 出填入對(duì)應(yīng)的緩存區(qū),然后對(duì)其進(jìn)行初始化并進(jìn)行相應(yīng)的數(shù)據(jù)轉(zhuǎn)換;
[0062] 在后續(xù)進(jìn)行寫(xiě)SIM卡操作時(shí),若對(duì)應(yīng)的緩存區(qū)無(wú)數(shù)據(jù),則將待更新的配置數(shù)據(jù)進(jìn) 行相應(yīng)的數(shù)據(jù)轉(zhuǎn)換并填入對(duì)應(yīng)的緩存區(qū),然后對(duì)其進(jìn)行初始化。
[0063] 映射字典是由一個(gè)二維數(shù)組transValue[m] [η]組成,二維數(shù)組transValue[m] [η]的每一個(gè)元素對(duì)應(yīng)一個(gè)參數(shù)名,其中m為0或l,m = 0對(duì)應(yīng)家庭網(wǎng)關(guān)上的配置參數(shù),m =1對(duì)應(yīng)SIM卡上的配置參數(shù),η為自然數(shù),表示第η個(gè)配置參數(shù);transValue [0] [η]對(duì)應(yīng) 家庭網(wǎng)關(guān)上的第η個(gè)配置參數(shù)的參數(shù)值;transValue [1] [η]對(duì)應(yīng)SIM卡上的第η個(gè)配置參 數(shù)的參數(shù)值,transValue[0] [η]和transValue[1] [η]對(duì)應(yīng)于同一個(gè)配置參數(shù)的參數(shù)值。
[0064] 步驟Α200、根據(jù)家庭網(wǎng)關(guān)上外部應(yīng)用程序所攜帶的讀寫(xiě)標(biāo)識(shí)和數(shù)據(jù)形態(tài)標(biāo)識(shí),調(diào) 用相應(yīng)的讀、寫(xiě)卡接口,導(dǎo)入配置文件的參數(shù)索引。
[0065] 讀寫(xiě)標(biāo)識(shí)包括讀SIM卡標(biāo)識(shí)(TransCard)和寫(xiě)SIM卡標(biāo)識(shí)(TransGateway),讀SIM 卡標(biāo)識(shí)用于在進(jìn)行數(shù)據(jù)轉(zhuǎn)換時(shí),將SIM卡數(shù)據(jù)格式轉(zhuǎn)換成家庭網(wǎng)關(guān)數(shù)據(jù)格式;寫(xiě)SIM卡標(biāo)識(shí) 用于在進(jìn)行數(shù)據(jù)轉(zhuǎn)換時(shí),將家庭網(wǎng)關(guān)數(shù)據(jù)格式轉(zhuǎn)換成SIM卡數(shù)據(jù)格式。
[0066] 數(shù)據(jù)形態(tài)標(biāo)識(shí)包括SM卡單個(gè)文件進(jìn)行操作標(biāo)識(shí)(OBJ)和SM卡文件中的單個(gè)參 數(shù)操作標(biāo)識(shí)(param)。
[0067] 參數(shù)索引包括文件名和參數(shù)名,文件名用于表示要操作的配置文件;參數(shù)名用于 表示要操作的配置文件中的參數(shù)。
[0068] 步驟A200具體包括以下步驟:
[0069] 步驟A201、檢查SM卡在線狀態(tài),若SM卡不在線,則執(zhí)行步驟A202 ;否則執(zhí)行步 驟 A203 ;
[0070] 步驟A202、清空所述緩存區(qū)內(nèi)的所有數(shù)據(jù),退出;
[0071] 步驟A203、根據(jù)家庭網(wǎng)關(guān)外部應(yīng)用程序所攜帶的讀寫(xiě)標(biāo)識(shí)和數(shù)據(jù)形態(tài)標(biāo)識(shí),調(diào)用 相應(yīng)的讀、寫(xiě)卡接口,導(dǎo)入配置文件的參數(shù)索引。
[0072] 步驟A300、查找緩存區(qū),如果該緩存區(qū)內(nèi)存在與參數(shù)索引對(duì)應(yīng)的數(shù)據(jù),則執(zhí)行讀、 寫(xiě)緩存區(qū),并完成或更新SIM卡配置;否則,將SM卡上的相應(yīng)配置數(shù)據(jù)填入緩沖區(qū)并進(jìn)行 相應(yīng)的數(shù)據(jù)轉(zhuǎn)換,或者將家庭網(wǎng)關(guān)上相應(yīng)配置數(shù)據(jù)進(jìn)行數(shù)據(jù)轉(zhuǎn)換并填入緩存區(qū),然后執(zhí)行 讀、寫(xiě)SM卡操作,完成配置或更新SM卡。
[0073] 其中,數(shù)據(jù)轉(zhuǎn)換的方法如下:
[0074] 依據(jù)導(dǎo)入的參數(shù)索引在所述映射字典中查找對(duì)應(yīng)的參數(shù)值是否存在,若不存在, 則退出;否則,判斷讀寫(xiě)標(biāo)識(shí),若讀寫(xiě)標(biāo)識(shí)為讀SIM卡標(biāo)識(shí),則根據(jù)參數(shù)名在映射字典找到 相應(yīng)transValue [1] [η],然后將參數(shù)值轉(zhuǎn)換為transValue [0] [η]對(duì)應(yīng)的參數(shù)值;若讀寫(xiě)標(biāo) 識(shí)為寫(xiě)SIM卡標(biāo)識(shí),則根據(jù)參數(shù)名在映射字典找到相應(yīng)transvalue [0] [η],然后將參數(shù)值 轉(zhuǎn)換為transValue [1] [η]對(duì)應(yīng)的參數(shù)值。如圖2所示,本發(fā)明中讀SIM卡操作具體包括以 下步驟:
[0075] 步驟A311、從讀卡接口導(dǎo)入SM卡上的配置數(shù)據(jù)的參數(shù)索引。
[0076] 步驟Α312、根據(jù)上述參數(shù)索引中的參數(shù)名查找緩存區(qū)內(nèi)是否存在對(duì)應(yīng)的數(shù)據(jù),若 存在則執(zhí)行步驟Α314 ;否則執(zhí)行步驟Α313。
[0077] 步驟Α313、從SM卡上讀出配置文件的流數(shù)據(jù)并填入緩存區(qū),完成緩存區(qū)的初始 化。
[0078] 步驟Α314、從緩存區(qū)中讀出文件流數(shù)據(jù),形式為〈POO = 〃value0〃P01 = "valuel"…〉,分解出每一個(gè)參數(shù)及其參數(shù)值填入一個(gè)與映射字典結(jié)構(gòu)相同的二維數(shù)組中 TwoArray[m][l]中,其中m為參數(shù)索引。
[0079] 例如讀出的文件流為〈POO = 〃value0〃P01 = "valuel"〉,表示該文件有2個(gè)參數(shù), 拆分后 TwoArray[0] [0]值為"P00",TwoArray[0] [1]值為"valueO",TwoArray[l] [0]值為 "P01",TwoArray[l] [1]值為"valuel",即:TwoArray[m] [0]存放文件流數(shù)據(jù)中的參數(shù)名, TwoArray[m] [1]存放文件流數(shù)據(jù)中對(duì)應(yīng)的參數(shù)值。
[0080] 步驟A315、根據(jù)參數(shù)名查找映射字典中對(duì)應(yīng)的參數(shù)值并進(jìn)行比對(duì),如果二者不一 致則執(zhí)行步驟A316 ;否則執(zhí)行步驟A317 ;
[0081] 當(dāng)數(shù)據(jù)形態(tài)標(biāo)識(shí)為PARAM時(shí),每次調(diào)用只能獲取指定參數(shù)索引的一個(gè)參數(shù)值;當(dāng) 數(shù)據(jù)形態(tài)標(biāo)識(shí)為OBJ時(shí),一次批量獲取TwoArray[m] [1]對(duì)應(yīng)的多個(gè)參數(shù)值,針對(duì)每個(gè)參數(shù) 查找數(shù)據(jù)轉(zhuǎn)換映射字典。
[0082] 步驟A316、將二維數(shù)組中相應(yīng)參數(shù)的參數(shù)值TwoArray [m] [1]轉(zhuǎn)換為映射字典對(duì) 應(yīng)的參數(shù)值并保存在緩沖區(qū)內(nèi);
[0083] 步驟A317、從緩沖區(qū)內(nèi)讀取配置數(shù)據(jù),根據(jù)數(shù)據(jù)形態(tài)標(biāo)識(shí)向終端輸出相應(yīng)的參數(shù) 值或結(jié)構(gòu)體。
[0084] 如圖3所示,本發(fā)明中寫(xiě)SIM卡操作具體包括以下步驟:
[0085] 步驟A321、從寫(xiě)卡接口導(dǎo)入終端上待更新配置數(shù)據(jù)。
[0086] 步驟A322、從緩存區(qū)讀出與待更新配置數(shù)據(jù)相對(duì)應(yīng)的參數(shù)值(讀SIM卡詳細(xì)流程 見(jiàn)圖2)。
[0087] 步驟A323、比較緩存區(qū)讀出的參數(shù)值與待更新配置數(shù)據(jù)是否一致,若一致則退出; 否則,執(zhí)行步驟A324。
[0088] 當(dāng)數(shù)據(jù)形態(tài)為PARAM時(shí),只需比較參數(shù)索引的參數(shù)值是否相等;當(dāng)數(shù)據(jù)形態(tài)為OBJ 時(shí),則需要先將導(dǎo)入的文件結(jié)構(gòu)體數(shù)據(jù)拆分到二維數(shù)組,再對(duì)每個(gè)參數(shù)值逐一比較。
[0089] 步驟A324、根據(jù)待更新配置數(shù)據(jù)的參數(shù)名查找映射字典,并進(jìn)行比對(duì),如果二者不 一致,則執(zhí)行步驟A325 ;否則執(zhí)行步驟A326。
[0090] 步驟A325、利用映射字典將待更新配置數(shù)據(jù)轉(zhuǎn)換為與SIM卡對(duì)應(yīng)的參數(shù)值,并保 存在緩沖區(qū)內(nèi)。
[0091] 步驟A326、將緩沖區(qū)內(nèi)的數(shù)據(jù)轉(zhuǎn)換成文件流形式,更新SIM卡。
[0092] 例如參數(shù)索引對(duì)應(yīng)文件有2個(gè)參數(shù),更新后的TwoArray [0] [1]值為"newValueO", TwoArray[ml[l]值為 "newValuel",組合成文件流為〈POO ="newValue0",P01 = ^newValuel^ >〇
[0093] 由以上流程可以看出,讀寫(xiě)卡模塊均會(huì)先經(jīng)過(guò)緩存模塊處理后,再選擇性對(duì)SM 卡進(jìn)行1/0操作,靈活高效;同時(shí),數(shù)據(jù)轉(zhuǎn)換單元中二維數(shù)組映射字典接口靈活,轉(zhuǎn)換效率 高,并可適應(yīng)后期"機(jī)卡分離規(guī)范"的變化,可擴(kuò)展性強(qiáng)。
[0094] 本發(fā)明不局限于上述實(shí)施方式,對(duì)于本【技術(shù)領(lǐng)域】的普通技術(shù)人員來(lái)說(shuō),在不脫離 本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也視為本發(fā)明的保護(hù) 范圍之內(nèi)。本說(shuō)明書(shū)中未作詳細(xì)描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員公知的現(xiàn)有技術(shù)。
【權(quán)利要求】
1. 機(jī)卡分離式終端上高速讀寫(xiě)SM卡的方法,其特征在于,包括以下步驟: 步驟A100、創(chuàng)建用于保存SM卡上的配置數(shù)據(jù)的緩存區(qū),構(gòu)造用于實(shí)現(xiàn)SM卡配置數(shù)據(jù) 與終端配置數(shù)據(jù)相互轉(zhuǎn)換的映射字典; 步驟A200、根據(jù)終端上外部應(yīng)用程序所攜帶的讀寫(xiě)標(biāo)識(shí)和數(shù)據(jù)形態(tài)標(biāo)識(shí),調(diào)用相應(yīng)的 讀、寫(xiě)卡接口,導(dǎo)入配置文件的參數(shù)索引; 步驟A300、查找所述緩存區(qū),如果所述緩存區(qū)內(nèi)存在與參數(shù)索引對(duì)應(yīng)的數(shù)據(jù),則執(zhí)行 讀、寫(xiě)緩存區(qū),并完成或更新SIM卡配置;否則,將SIM卡上的相應(yīng)配置數(shù)據(jù)填入所述緩存區(qū) 并進(jìn)行相應(yīng)的數(shù)據(jù)轉(zhuǎn)換,或者將終端上的相應(yīng)配置數(shù)據(jù)進(jìn)行數(shù)據(jù)轉(zhuǎn)換并填入所述緩存區(qū), 然后執(zhí)行讀、寫(xiě)SIM卡操作,完成配置或更新SIM卡。
2. 如權(quán)利要求1所述的方法,其特征在于,步驟A100中創(chuàng)建的緩存區(qū),在系統(tǒng)上電時(shí)不 統(tǒng)一初始化;當(dāng)系統(tǒng)斷電后,所述緩存區(qū)自動(dòng)釋放;在以下情況發(fā)生時(shí),對(duì)所述緩存區(qū)進(jìn)行 初始化: 初次進(jìn)行讀、寫(xiě)SIM卡操作時(shí),對(duì)所述緩存區(qū)進(jìn)行初始化: 在后續(xù)進(jìn)行讀SIM卡操作時(shí),若對(duì)應(yīng)的緩存區(qū)無(wú)數(shù)據(jù),則將SIM卡上的配置數(shù)據(jù)讀出填 入對(duì)應(yīng)的緩存區(qū),然后對(duì)其進(jìn)行初始化并進(jìn)行相應(yīng)的數(shù)據(jù)轉(zhuǎn)換; 在后續(xù)進(jìn)行寫(xiě)SIM卡操作時(shí),若對(duì)應(yīng)的緩存區(qū)無(wú)數(shù)據(jù),則將待更新的配置數(shù)據(jù)進(jìn)行相 應(yīng)的數(shù)據(jù)轉(zhuǎn)換并填入對(duì)應(yīng)的緩存區(qū),然后對(duì)其進(jìn)行初始化。
3. 如權(quán)利要求1所述的方法,其特征在于,步驟A200包括以下步驟: 步驟A201、檢查SM卡在線狀態(tài),若SM卡不在線,則執(zhí)行步驟A202 ;否則執(zhí)行步驟 A203 ; 步驟A202、清空所述緩存區(qū)內(nèi)的所有數(shù)據(jù),退出; 步驟A203、根據(jù)外部應(yīng)用程序所攜帶的讀寫(xiě)標(biāo)識(shí)和數(shù)據(jù)形態(tài)標(biāo)識(shí),調(diào)用相應(yīng)的讀、寫(xiě)卡 接口,導(dǎo)入配置文件的參數(shù)索引; 所述讀寫(xiě)標(biāo)識(shí)包括讀SIM卡標(biāo)識(shí)和寫(xiě)SIM卡標(biāo)識(shí),讀SIM卡標(biāo)識(shí)用于在進(jìn)行數(shù)據(jù)轉(zhuǎn)換 時(shí),將SIM卡數(shù)據(jù)格式轉(zhuǎn)換成網(wǎng)關(guān)數(shù)據(jù)格式;寫(xiě)SIM卡標(biāo)識(shí)用于在進(jìn)行數(shù)據(jù)轉(zhuǎn)換時(shí),將網(wǎng)關(guān) 數(shù)據(jù)格式轉(zhuǎn)換成SIM卡數(shù)據(jù)格式; 所述數(shù)據(jù)形態(tài)標(biāo)識(shí)包括單個(gè)文件操作標(biāo)識(shí)和單個(gè)參數(shù)操作標(biāo)識(shí); 所述參數(shù)索引包括文件名和參數(shù)名,文件名用于表示要操作的配置文件;參數(shù)名用于 表示要操作的配置文件中的參數(shù)。
4. 如權(quán)利要求1所述的方法,其特征在于,所述映射字典由一個(gè)二維數(shù)組 transValue[m] [η]組成,二維數(shù)組transValue[m] [η]的每一個(gè)元素對(duì)應(yīng)一個(gè)參數(shù)名, 其中m為0或l,m = 0對(duì)應(yīng)終端上的配置參數(shù),m = 1對(duì)應(yīng)SIM卡上的配置參數(shù),η為 自然數(shù),表示第η個(gè)配置參數(shù);transValue[0] [η]對(duì)應(yīng)終端上的第η個(gè)配置參數(shù)的參數(shù) 值;transValue[l] [η]對(duì)應(yīng)SIM卡上的第η個(gè)配置參數(shù)的參數(shù)值,transValue[0] [η]和 transValue[l] [η]對(duì)應(yīng)于同一個(gè)配置參數(shù)的參數(shù)值;步驟Α300中的數(shù)據(jù)轉(zhuǎn)換的方法如 下: 依據(jù)導(dǎo)入的參數(shù)索引在所述映射字典中查找對(duì)應(yīng)的參數(shù)值是否存在,若不存在,則退 出;否則,判斷讀寫(xiě)標(biāo)識(shí),若讀寫(xiě)標(biāo)識(shí)為讀SIM卡標(biāo)識(shí),則根據(jù)參數(shù)名在映射字典找到相應(yīng) 的transValue [1] [η],然后將參數(shù)值轉(zhuǎn)換為transValue [0] [η]對(duì)應(yīng)的參數(shù)值;若讀寫(xiě)標(biāo)識(shí) 為寫(xiě)SIM卡標(biāo)識(shí),則根據(jù)參數(shù)名在映射字典找到相應(yīng)的transvalue [0] [η],然后將參數(shù)值 轉(zhuǎn)換為transValue[1] [η]對(duì)應(yīng)的參數(shù)值。
5. 如權(quán)利要求3所述的方法,其特征在于,步驟Α300中,所述讀SIM卡操作包括以下步 驟: 步驟A311、從讀卡接口導(dǎo)入SM卡上的配置數(shù)據(jù)的參數(shù)索引; 步驟Α312、根據(jù)上述參數(shù)索引中的參數(shù)名查找緩存區(qū)內(nèi)是否存在對(duì)應(yīng)的數(shù)據(jù),若存在 則執(zhí)行步驟Α314 ;否則執(zhí)行步驟Α313 ; 步驟Α313、從SIM卡上讀出配置文件的流數(shù)據(jù)并填入緩存區(qū),完成緩存區(qū)的初始化,轉(zhuǎn) 步驟A314 ; 步驟Α314、從緩存區(qū)中讀出文件流數(shù)據(jù),分解出每一個(gè)參數(shù)及其參數(shù)值填入一個(gè)與映 射字典結(jié)構(gòu)相同的二維數(shù)組中; 步驟Α315、根據(jù)參數(shù)名查找映射字典中對(duì)應(yīng)的參數(shù)值并進(jìn)行比對(duì),如果二者不一致則 執(zhí)行步驟Α316 ;否則執(zhí)行步驟Α317 ; 步驟Α316、將二維數(shù)組中相應(yīng)參數(shù)的參數(shù)值轉(zhuǎn)換為映射字典對(duì)應(yīng)的參數(shù)值并保存在緩 沖區(qū)內(nèi); 步驟Α317、從緩沖區(qū)內(nèi)讀取配置數(shù)據(jù),根據(jù)數(shù)據(jù)形態(tài)標(biāo)識(shí)向終端輸出相應(yīng)的參數(shù)值或 結(jié)構(gòu)體。
6. 如權(quán)利要求1所述的方法,其特征在于,步驟Α300中,高速寫(xiě)SIM卡操作包括以下步 驟: 步驟Α321、從讀卡接口導(dǎo)入終端上待更新配置數(shù)據(jù); 步驟Α322、從緩存區(qū)讀出與待更新配置數(shù)據(jù)相對(duì)應(yīng)的參數(shù)值; 步驟Α323、比較緩存區(qū)讀出的參數(shù)值與待更新配置數(shù)據(jù)是否一致,若一致則退出;否 貝1J,執(zhí)行步驟Α324 ; 步驟Α324、根據(jù)待更新配置數(shù)據(jù)的參數(shù)名查找映射字典,并進(jìn)行比對(duì),如果二者不一 致,則執(zhí)行步驟Α325 ;否則執(zhí)行步驟Α326 ; 步驟Α325、利用映射字典將待更新配置數(shù)據(jù)轉(zhuǎn)換為與SIM卡對(duì)應(yīng)的參數(shù)值,并保存在 緩沖區(qū)內(nèi); 步驟Α326、將緩沖區(qū)內(nèi)的數(shù)據(jù)轉(zhuǎn)換成文件流形式,更新SIM卡。
7. 如權(quán)利要求1所述的方法,其特征在于,在進(jìn)行數(shù)據(jù)轉(zhuǎn)換時(shí),當(dāng)數(shù)據(jù)形態(tài)標(biāo)識(shí)為單個(gè) 參數(shù)操作標(biāo)識(shí)時(shí),每次只能轉(zhuǎn)換一個(gè)參數(shù);當(dāng)數(shù)據(jù)形態(tài)標(biāo)識(shí)為單個(gè)文件操作標(biāo)識(shí)時(shí),一次批 量獲取多個(gè)參數(shù),并利用映射字典進(jìn)行批量轉(zhuǎn)換。
8. 如權(quán)利要求6所述的方法,其特征在于,步驟Α300中,待更新配置數(shù)據(jù)與映射字典中 參數(shù)值進(jìn)行比對(duì)時(shí),如果數(shù)據(jù)形態(tài)標(biāo)識(shí)為單個(gè)參數(shù)操作標(biāo)識(shí),只需比較相應(yīng)的參數(shù)值是否 相等;當(dāng)數(shù)據(jù)形態(tài)標(biāo)識(shí)為單個(gè)文件操作標(biāo)識(shí),則需要先將導(dǎo)入的文件結(jié)構(gòu)體數(shù)據(jù)拆分到一 個(gè)二維數(shù)組,再對(duì)每個(gè)參數(shù)值逐一比較。
9. 機(jī)卡分離式終端上高速讀寫(xiě)SM卡的裝置,其特征在于,包括: 讀、寫(xiě)卡接口; 讀、寫(xiě)卡模塊,根據(jù)外部應(yīng)用程序所攜帶的讀寫(xiě)標(biāo)識(shí)和數(shù)據(jù)形態(tài)標(biāo)識(shí),調(diào)用相應(yīng)的讀、 寫(xiě)卡接口,并導(dǎo)入配置文件的參數(shù)索引; 緩存模塊,其上設(shè)有用于保存SM卡上的配置數(shù)據(jù)的緩存區(qū)和用于實(shí)現(xiàn)SM卡配置 數(shù)據(jù)與終端配置數(shù)據(jù)相互轉(zhuǎn)換的映射字典,根據(jù)配置文件的參數(shù)索引查找所述緩存區(qū),如 果所述緩存區(qū)內(nèi)存在與參數(shù)索引對(duì)應(yīng)的數(shù)據(jù),則執(zhí)行讀、寫(xiě)緩存區(qū),并完成或更新SIM卡配 置;否則,將SIM卡上的相應(yīng)配置數(shù)據(jù)填入所述緩沖區(qū)并進(jìn)行相應(yīng)的數(shù)據(jù)轉(zhuǎn)換,或者將終端 上的相應(yīng)配置數(shù)據(jù)進(jìn)行數(shù)據(jù)轉(zhuǎn)換并填入所述緩沖區(qū),然后執(zhí)行讀、寫(xiě)SIM卡操作,完成配置 或更新SIM卡。
【文檔編號(hào)】G06K17/00GK104156745SQ201410395236
【公開(kāi)日】2014年11月19日 申請(qǐng)日期:2014年8月12日 優(yōu)先權(quán)日:2014年8月12日
【發(fā)明者】葉鳳霞, 陳為, 李靜, 劉書(shū)奎 申請(qǐng)人:烽火通信科技股份有限公司