一种码分多址无线固定台机卡互传功能的实现方法

文档序号:7648946阅读:116来源:国知局
专利名称:一种码分多址无线固定台机卡互传功能的实现方法
技术领域
本发明涉及一种CDMA(码分多址)无线固定台机卡互传功能的实现方法。
背景技术
目前,CDMA无线固定台的机卡互传功能是终端系统中电话本模块的新增功能,一般的功能定义为对于机卡分离版本,可以将固定台话机中的电话本记录复制到UIM(用户)卡中,也可以将UIM卡中的电话本记录复制到话机中。
现有技术存在以下缺点1)机卡互传只能批量的全部互传,没有单条记录的互传,灵活性和友好性很差。不具有单条记录的互传功能,会使得在机卡互传时,将源介质上很多无用的信息同步到目标介质中,使得用户必须在同步后必须手动删除无用的信息。
2)必须以覆盖的方式互传,无法选择不覆盖方式,选择性和实用性很差。以覆盖方式进行机卡互传,会使得目标介质中原有的电话记录信息丢失。但实际上,当进行机卡记录互传时,需要更多的选择性的单条多次互传。即便是全部互传时,用户大多时候也是希望不覆盖原有电话记录的。

发明内容
本发明所要解决的技术问题是提供一种码分多址无线固定台机卡互传功能的实现方法,实现机卡单条互传,并不覆盖原有电话记录。
为解决上述技术问题,本发明是通过以下技术方案实现的一种码分多址无线固定台机卡互传功能的实现方法,包括以下步骤A、定义与用户卡中单条记录存取结构一致的用户卡记录类型结构体;B、定义用户卡中存储电话记录的基本文件的数据记录状态的缓存数组,其元素的类型为步骤A中定义的结构体类型;C、定义缓存记录的索引链表单元结构体;D、用户卡初始化后,通过回调机制读取用户卡基本文件中的电话记录,将文件的记录状态全部读入到对应的状态缓存结构体数组中;E、进入机卡互传操作循环。
其中,所述步骤A中用户卡记录类型结构体包含名称、电话号码,其中名称字段为具有17个元素的字符数组,电话号码字段为具有33个元素的字符数组;所述步骤B中,所述缓存数组中元素的个数定义为256。
其中,步骤E中,将UIM卡中记录传到话机中的方法为①获取当前电话机和UIM卡中的记录总数;②判断话机中记录总数与其电话本容量是否相等,若不相等,则获取UIM卡状态缓存中一条电话记录的指针;若相等,则表明话机中记录存储已满,结束循环,返回;③提取单条记录的内容暂存入临时变量中,以临时变量为实参调用单条电话记录存储接口函数,将此条记录存入话机中,若存储成功,则返回至步骤①,进行下一条记录的存储;若存储不成功,则结束循环,返回;将话机中记录传到UIM卡中的方法为(1)获取当前电话机和UIM卡中的记录总数;(2)判断UIM卡中记录总数与其容量是否相等,若不相等,则获取电话机状态缓存中一条电话记录的指针;若相等,则表明UIM卡存储已满,结束循环,返回;(3)提取单条记录的内容暂存入临时变量中,以临时变量为实参调用单条电话记录存储接口函数,将此条记录存入UIM卡中,若存储成功,则返回至步骤(1),进行下一条记录的存储;若存储不成功,则结束循环,返回。
其中,所述步骤C中,所述索引链表单元结构体包含表示单个记录地址的单条记录结构体指针、表示缓存容量的整型字段,整型的下一条记录的索引。
其中,所述步骤D中的回掉初始化包括以下步骤D01、判断用户卡的个人标识码状态,如果为disable,则调用状态缓存初始化函数;否则提示输入个人标识码,重复步骤D01;D02、状态缓存初始化函数获取用户卡的实际容量,确定回调循环的次数,再调用回调启动函数;
D03、注册回调结构体和回掉函数,再启动回调循环,每次回调均读取一条记录,直至所有实际容量范围的用户卡电话记录均读取到状态缓存中。
其中,所述方法还包括在缓存回调初始化过程中,建立非空的UIM卡记录的ID索引链表,之后对用户卡记录进行添加、查询、更新或删除操作,并同步维护缓存的状态,使其与用户卡的状态一致。
其中,所述缓存与用户卡状态保持一致的方法有二种(i)在对用户卡进行操作的接口函数中,添加与缓存数组中数据同步的函数,即如果对用户卡的相应操作成功,则插入到对应的缓存位置中执行相同的操作,否则忽略;(ii)对标准接口函数进行包装,添加对缓存数组中数据的操作功能。
其中,所述查询包括号码查询和名称查询两类,每类又分为精确匹配和模糊匹配两种方式,查询方法为指定查找条件,调用查找接口函数在状态缓存中进行查找,返回需要查找的信息;其中,所述UIM卡电话记录的更新操作方法为在UIM卡电话记录更新函数中,加入缓存中对应的数据元素的更新函数的调用,需要更新时,直接调用UIM卡电话记录更新函数;所述对UIM卡添加电话记录的方法为调用判断缓存中第一条空记录的函数。
其中,所述UIM卡电话记录的删除操作包括单条记录删除和全部删除;在操作之前,在删除函数中加入缓存中对应的数据元素的删除函数的调用;对于单条记录删除,直接调用单条记录的删除函数;对于全部删除,循环调用单条记录删除函数,每次循环结束时,需要进行操作系统的踢狗操作。
本发明具有的有益效果为1、机卡之间可以互传单条记录,有较强的灵活性和友好性。用户可以选择有用记录进行互传,不必在同步后自己手动删除无用的信息。
2、由于该方法使得用户有选择性的单条多次互传,不覆盖原有的电话记录,增强了选择性和实用性。
3、具有对UIM卡中记录进行查询,删除,更新的能力。


图1为UIM卡缓存数组初始化流程图;图2为机卡互传功能界面操作流程图;图3为UIM卡中记录向话机中同步的流程图;图4为话机中记录向UIM卡中同步的流程图;图5为UIM卡记录查找的流程图;图6为UIM卡单条记录匹配的流程图。
具体实施例方式
下面结合附图和具体实施例对本发明作进一步详细的描述本发明通过建立UIM卡电话记录状态缓存的方式对CDMA无线固定台的机卡互传功能进行了拓展和优化,具体实现方法包括以下步骤A、定义和用户卡中单条记录记录存取结构一致的UIM卡记录类型结构体。结构体中包含名称和电话号码两个成员,其中名称字段为具有17个元素的字符数组,电话号码字段为具有33个元素的字符数组。
B、定义UIM卡中存储电话记录的基本文件(EFADN6F3A)的数据记录状态的缓存数组。由于EFADN6F3A基本文件的最大容量为255,所以需要定义该缓存数组的元素个数为256。缓存数组中元素的类型为上面定义的单条记录结构体类型。
C、定义缓存记录的索引链表单元结构体。结构体包含三个成员,分别为表示单个记录地址的单条记录结构体指针、整型的表示缓存容量的字段、整型的下一条记录的索引。
D、用户卡初始化,通过回调机制读取用户卡基本文件中的电话记录,将文件的记录状态全部读入到对应的状态缓存结构体数组中。
在开机上电时,UIM卡初始化成功后,利用回调机制轮询后台读取UIM卡文件EFADN6F3A中的电话记录,将文件的记录状态全部读入到对应的状态缓存结构体数组中。这样,缓存数组中的记录状态就和卡中的记录状态一致。
回调初始化的方法为在UIM卡初始化函数中,判断UIM卡的pin码(个人标识码)状态,如果为disable,则调用状态缓存初始化函数,否则提示输入pin码,在输入正确的pin码后才调用状态缓存初始化函数。状态缓存初始化函数中首先获取UIM卡中实际的容量,确定回调循环的次数。然后调用回调启动函数,开始回调第一条记录。
在回调启动函数中,首先注册回调,然后启动回调循环。每次回调均读取一条记录。依照信号搜索优先的原则,通过定时器确定相邻两条记录读取的回调时间间隔。直到所有实际容量范围的UIM卡电话记录均读取到状态缓存中时,回调结束。回调流程如附图1所示。
E、进行机卡互传操作。如图2所示,机卡互传功能界面操作流程为选择电话本机卡互传功能菜单,进入机卡互传方式列表菜单后,选择互传方式,开始指定的机卡互传,进入互传等待界面,如图3所示,以不覆盖的方式将UIM卡中记录传到话机中的方法为301~302、检测UIM卡的状态,如果状态不正常,则重启系统;否则进入下一步。
303~305、批量互传循环初始化设置,成功后进入批量互传循环操作。
306~307、获取当前电话机和UIM卡中的记录总数。
308~309、判断话机中记录总数与其电话本容量是否相等,若不相等,则获取UIM卡状态缓存中一条电话记录的指针;若相等,则表明话机中记录存储已满,结束循环,返回。
310~313、指针获取成功后,提取单条记录的内容暂存入临时变量中,以临时变量为实参调用单条电话记录存储接口函数,该函数将此条记录存入话机中。若存储成功,则返回至步骤306,进行下一条记录的存储;若存储不成功,则结束循环,返回。
如图4所示,以不覆盖的方式将话机中记录传到UIM卡中的方法为
401~402、检测UIM卡的状态,如果状态不正常,则重启系统;否则进入下一步。
403~405、批量互传循环初始化设置,成功后进入批量互传循环操作。
406~407、获取当前电话机和UIM卡中的记录总数。
408~409、判断UIM卡中记录总数与其容量是否相等,若不相等,则获取电话机状态缓存中一条电话记录的指针;若相等,则表明UIM卡存储已满,结束循环,返回。
410~413、指针获取成功后,提取单条记录的内容暂存入临时变量中,以临时变量为实参调用单条电话记录存储接口函数,该函数将此条记录存入UIM卡中。若存储成功,则返回至步骤406,进行下一条记录的存储;若存储不成功,则结束循环,返回。
F、当对UIM卡记录进行操作时,同步维护缓存的状态,使其与UIM卡的存储状态保持一致,则缓存数组的状态直接反映了UIM卡中电话记录的存储状态。因此在进行UIM卡操作时,获取了缓存数组的的状态后,就可以直接对UIM卡进行了操作。
保证缓存和UIM状态一致可采取以下方法(i)在对UIM卡进行添加或其他操作的接口函数中,添加对缓存数组中的数据同步的函数。如果UIM相应操作成功,则执行插入到对应的缓存位置中操作。否则忽略。
(ii)在CDMA无线固定台的系统平台中,一般UIM卡的操作接口函数是标准的,为了实现缓存数组中数据状态的一致性,对标准接口函数进行包装,以加入对缓存数组中数据的操作。
在该方法中,可以对UIM卡电话记录进行添加、查询、更新或删除操作。
对UIM卡添加电话记录方法为调用判断缓存中第一条空记录的函数。其原理为在系统回调初始化缓存时,将用户卡实际容量范围内的所有电话记录的内容均读取到了缓存中,而不去判断从用户卡获取的记录是否为空记录,这样初始化成功后,缓存的状态就和用户卡的EFADN文件中的数据状态完全一致。因此,在添加电话记录时,通过轮询缓存,找到缓存中第一个电话号码字段为空的数据元素后,就可以安全的对用户卡进行添加操作了。其他操作,诸如更新,删除等用户卡操作,由于在操作时已经确定了要操作的用户卡的记录ID,所以不需要判断缓存的状态,只需要在成功完成操作后,对缓存中对应的数据元素进行相应的操作即可。考虑到电话记录操作接口的一致性和友好性,本发明采用了统一的电话记录操作接口,所以为了区别是对电话本身进行操作,还是对用户卡进行操作, 本发明定义了用户卡记录ID的掩码,并在初始化过程中与实际的用户卡记录ID进行位与操作,所以在对用户卡记录进行操作时,需要去掉记录ID的掩码。
UIM卡电话记录的查询分为号码查询和名称查询两类,每类又可分为精确匹配和模糊匹配两种方式。
由于前面已经建立了UIM卡的状态缓存,因此不实际改变UIM卡数据的UIM卡查询操作可通过直接在状态缓存中完成。实现方法为首先在缓存回调初始化过程中,建立非空的UIM卡记录的ID索引链表,同时在进行UIM卡的各项操作时,实时维护该索引链表,以使得在查找时只遍历有效的记录ID,提高搜索速度,这是实现快速查找的前提。然后,在需要进行电话记录查找时,指定查找条件,调用查找接口函数进行查找,返回需要查找的信息。
如图5所示,UIM卡记录查找的详细流程为501~502、按照外部调用时给定的查询条件,进行查询初始化。如果初始化成功,进入下一步;否则,查找结束。
503~504、枚举UIM卡ID索引链表中的第一个数据结点,返回记录ID。如果ID有效,则进入下一步;否则查找结束,返回。
505~506、调用匹配接口函数。接口函数实现流程见图6。如果匹配成功,则返回当前电话记录的数据信息;否则进入步骤510。
507~509、如果是单次匹配,则查找结束,返回;否则进入下一步。
510、枚举ID链表中的下一个结点,返回至步骤504,进行枚举循环。
如图6所示,UIM卡单条记录匹配的详细流程为601~603、调用外部的查找接口函数,传入指定的记录ID,和UIM卡记录ID的掩码进行位与操作。如果操作结果为真,则获取实际的UIM卡记录ID,进入下一步;否则匹配结束,返回。
604~605、根据实际获取的记录ID,获取UIM卡电话记录缓存中对应的数据元素的数据信息的指针。判断查找的条件数据是否为空,以确定是全部记录列表查找还是条件数据查找。如果为空,则进入步骤611,匹配成功,按照接口约定的格式返回当前记录的数据信息,接口约定的格式可以由具体的实现确定;否则,进入下一步操作。
606~612,查询条件数据不为空时,首先判断为何种查找方式。确定查找方式后,调用对应的字符串匹配处理的助手函数,对查询数据和相应的缓存中的记录数据进行比较。如果匹配成功,进入步骤611;否则进入步骤612,匹配失败,返回。
UIM卡电话记录的更新方法为在UIM卡电话记录更新函数中,加入缓存中对应的数据元素的更新函数的调用,需更新时直接调用UIM卡电话记录更新函数。
UIM卡电话记录的删除包括单条记录删除和全部删除两种。对于单条记录删除操作来说,需在单条记录删除函数中,加入缓存中对应的数据元素的删除函数的调用。对于全部删除的操作,循环调用单条记录删除操作的接口函数,在每次循环结束时,需要进行操作系统的踢狗操作。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种码分多址无线固定台机卡互传功能的实现方法,其特征在于,包括以下步骤A、定义与用户卡中单条记录存取结构一致的用户卡记录类型结构体;B、定义用户卡中存储电话记录的基本文件的数据记录状态的缓存数组,其元素的类型为步骤A中定义的结构体类型;C、定义缓存记录的索引链表单元结构体;D、用户卡初始化后,通过回调机制读取用户卡基本文件中的电话记录,将文件的记录状态全部读入到对应的状态缓存结构体数组中;E、进入机卡互传操作循环。
2.如权利要求1所述的码分多址无线固定台机卡互传功能的实现方法,其特征在于,所述步骤A中用户卡记录类型结构体包含名称、电话号码,其中名称字段为具有17个元素的字符数组,电话号码字段为具有33个元素的字符数组;步骤B中,所述缓存数组中元素的个数定义为256。
3.如权利要求1所述的码分多址无线固定台机卡互传功能的实现方法,其特征在于,步骤E中,将UIM卡中记录传到话机中的方法为①获取当前电话机和UIM卡中的记录总数;②判断话机中记录总数与其电话本容量是否相等,若不相等,则获取UIM卡状态缓存中一条电话记录的指针;若相等,则表明话机中记录存储已满,结束循环,返回;③提取单条记录的内容暂存入临时变量中,以临时变量为实参调用单条电话记录存储接口函数,将此条记录存入话机中,若存储成功,则返回至步骤①,进行下一条记录的存储;若存储不成功,则结束循环,返回;将话机中记录传到UIM卡中的方法为(1)获取当前电话机和UIM卡中的记录总数;(2)判断UIM卡中记录总数与其容量是否相等,若不相等,则获取电话机状态缓存中一条电话记录的指针;若相等,则表明UIM卡存储已满,结束循环,返回;(3)提取单条记录的内容暂存入临时变量中,以临时变量为实参调用单条电话记录存储接口函数,将此条记录存入UIM卡中,若存储成功,则返回至步骤(1),进行下一条记录的存储;若存储不成功,则结束循环,返回。
4.如权利要求1所述的码分多址无线固定台机卡互传功能的实现方法,其特征在于,所述步骤C中,所述索引链表单元结构体包含表示单个记录地址的单条记录结构体指针、表示缓存容量的整型字段,整型的下一条记录的索引。
5.如权利要求1所述的码分多址无线固定台机卡互传功能的实现方法,其特征在于,所述步骤D中的回掉初始化包括以下步骤D01、判断用户卡的个人标识码状态,如果为disable,则调用状态缓存初始化函数;否则提示输入个人标识码,重复步骤D01;D02、状态缓存初始化函数获取用户卡的实际容量,确定回调循环的次数,再调用回调启动函数;D03、注册回调结构体和回掉函数,再启动回调循环,每次回调均读取一条记录,直至所有实际容量范围的用户卡电话记录均读取到状态缓存中。
6.如权利要求1至5中任一所述的码分多址无线固定台机卡互传功能的实现方法,其特征在于,所述方法还包括在缓存回调初始化过程中,建立非空的UIM卡记录的ID索引链表,之后对用户卡记录进行添加、查询、更新或删除操作,并同步维护缓存的状态,使其与用户卡的状态一致。
7.如权利要求6所述的码分多址无线固定台机卡互传功能的实现方法,其特征在于,所述缓存与用户卡状态保持一致的方法有二种(i)在对用户卡进行操作的接口函数中,添加与缓存数组中数据同步的函数,即如果对用户卡的相应操作成功,则插入到对应的缓存位置中执行相同的操作,否则忽略;(ii)对标准接口函数进行包装,添加对缓存数组中数据的操作功能。
8.如权利要求6所述的码分多址无线固定台机卡互传功能的实现方法,其特征在于,所述查询包括号码查询和名称查询两类,每类又分为精确匹配和模糊匹配两种方式,查询方法为指定查找条件,调用查找接口函数在状态缓存中进行查找,返回需要查找的信息;
9.如权利要求6所述的码分多址无线固定台机卡互传功能的实现方法,其特征在于,所述UIM卡电话记录的更新操作方法为在UIM卡电话记录更新函数中,加入缓存中对应的数据元素的更新函数的调用,需要更新时,直接调用UIM卡电话记录更新函数;所述对UIM卡添加电话记录的方法为调用判断缓存中第一条空记录的函数。
10.如权利要求6所述的码分多址无线固定台机卡互传功能的实现方法,其特征在于,所述UIM卡电话记录的删除操作包括单条记录删除和全部删除;在操作之前,在删除函数中加入缓存中对应的数据元素的删除函数的调用;对于单条记录删除,直接调用单条记录的删除函数;对于全部删除,循环调用单条记录删除函数,每次循环结束时,需要进行操作系统的踢狗操作。
全文摘要
本发明公开了一种码分多址无线固定台机卡互传功能的实现方法,包括以下步骤A.定义与用户卡中单条记录存取结构一致的用户卡记录类型结构体;B.定义用户卡中存储电话记录的基本文件的数据记录状态的缓存数组,其元素的类型为步骤A中定义的结构体类型;C.定义缓存记录的索引链表单元结构体;D.用户卡初始化后,通过回调机制读取用户卡基本文件中的电话记录,将文件的记录状态全部读入到对应的状态缓存结构体数组中;E.进入机卡互传操作循环。采用本发明,机卡之间可以互传单条记录,有较强的灵活性和友好性;不覆盖原有的电话记录,增强了选择性和实用性;具有对UIM卡中记录进行查询,删除,更新的能力。
文档编号H04W8/20GK101087456SQ20071007636
公开日2007年12月12日 申请日期2007年7月3日 优先权日2007年7月3日
发明者柏凤佳 申请人:深圳市中兴移动技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1