本发明专利技术提供一种机顶盒脚本扩充函数的方法,使用hash表登记注册方式对注册功能函数进行注册登记,将每个注册功能函数进行分类,并对每个类分配一独立的内存空间进行存储;并在内存空间中分配一个空间用来存储该注册功能函数名的字符串、固定长度的hash数值以及注册功能函数的指针等数据,当机顶盒脚本程序执行一注册功能函数时,机顶盒脚本解析引擎会对脚本程序所调用的注册功能函数的字符串进行hash运算,将得到的hash数值与空间中的固定长度的hash数值进行对比,相同时取出对应注册功能函数的指针交由脚本解析引擎调用。本发明专利技术加快了机顶盒脚本程序对所需函数进行调用的速率,提高了机顶盒运行的效率,给用户带来方便。
【技术实现步骤摘要】
本专利技术涉及一种嵌入式
,尤其涉及。
技术介绍
随着国家数字电视的大规模普及,作为数字电视终端产品的数字电视机顶盒的功 能也越来越强大,作为与用户使用最多的人机交互界面也越来越多样。为了更快更好的编 写适合各种运营商提出的定制要求,机顶盒上使用脚本语言编写应用程序可以实现快速的 开发,适应快速变化的用户需求。由于使用脚本作为机顶盒应用程序的主要表现形式,机顶盒必须提供大量丰富的 功能函数供脚本调用,传统注册功能函数到脚本解析引擎的方式,一般采用数组登记方式 或者链表登记方式,使用数组登记方式存储注册功能函数,一般使用从上到下的方式进行 存储,先注册的函数先存储,查找时也是使用从上到下的方式进行查询,一一比对存储在数 组中的注册功能函数的字符串名称是否和需要调用的脚本中的函数的字符串相同的,如果 不同就继续比对下一个,如果相同,则调用对于的函数实现相应的功能。使用链表登记方 式存储注册功能函数,一般每添加一个注册函数就分配一个结点,并挂接在原链表的最后 一个结点上,直到把所有注册函数挂接完毕为止。在脚本解析引擎在查询时,依着链表逐个 的查找每个结点,一一比对存储在数组中的注册功能函数的字符串名称是否和需要调用的 脚本中的函数的字符串相同的,如果不同就继续比对下一个,如果相同,则调用对于的函数 实现相应的功能。因此当脚本解析引擎调用相应的注册的功能函数时,需要花费大量的时间进行比 对查找,当注册到脚本解析引擎中的功能函数越多时,查询的速度越慢,拖累整个脚本程序 执行的效率。
技术实现思路
本专利技术要解决的技术问题,在于提供,克服了传 统注册功能函数注册到脚本解析引擎的方式,当脚本解析引擎调用相应的注册的功能函 数时,需要花费大量的时间进行比对查找,查询的速度慢,拖累整个脚本程序执行的效率问题。本专利技术是这样实现的,其特征在于包括以下 步骤步骤10、把机顶盒脚本调用的注册功能函数进行分类,每类函数对应一个类名,并 对每个类分配一独立的内存空间进行存储;步骤20、当机顶盒注册脚本程序时,获取一注册功能函数,并判断该函数对应的类 在内存空间中是否存在,否,则分配一足够大的内存空间进行存储,是则判断该类的内存空 间是否足够存储新的函数,否则继续分配一足够大的内存空间,再转入步骤30,是则直接进 入步骤30 ;步骤30、通过散列法把注册功能函数名的字符串转换为固定长度的数值,其散列 法步骤如下步骤301、把注册功能函数名的字符串全部转换为大写步骤302、将转换后的字符串从头到尾开始按4个字节来组合成一个32位整型数 据,以此类推直到最后4个字节组合成一个32位整型数据,并把这些32位整型数据进行加 减乘除,以及与或非运算,最终得到一 32位的整型数据;步骤303、把最终得到32位的整型数据作为该注册功能函数名的字符串对应的固 定长度的hash数值。步骤40、将注册功能函数所属类的内存空间中分配一个空间用来存储该注册功能 函数名的字符串、所述固定长度的hash数值以及注册功能函数的指针及注册功能函数的 相关内容,并将空间中的这些数据以链表的形式挂接在该注册功能函数所属类的空间下。步骤50、当机顶盒脚本程序执行一注册功能函数时,机顶盒脚本解析引擎会对脚 本程序所调用的注册功能函数的字符串进行hash运算,得到该注册功能函数对应的hash 数值;步骤60、机顶盒脚本程序分析注册功能函数所属的类,找出该类的内存空间,并根 据该类存储的链表形式逐个的将所述根据函数字符串进行hash运算得到的hash数值与所 述内存空间中的固定长度的hash数值进行比对,找出注册功能函数hash数值相同的数据, 然后取出该注册功能函数的字符串进行比对,如果一样则取出对应注册功能函数的指针及 注册功能函数的相关内容交由脚本解析引擎调用,如果不相同,则继续比对别的注册功能 函数的hash数值。本专利技术具有如下优点使用hash表登记注册方式来对注册功能函数进行注册登 记,能够实现对所需注册功能函数的快速查找,加速了机顶盒脚本程序的运行速度,提高了 机顶盒运行的效率,给用户带来方便。附图说明图1为本专利技术方法流程示意图。具体实施方式下面参照图1结合实施例对本专利技术作进一步的说明。机顶盒脚本扩充函数的方法,包括以下步骤步骤10、把机顶盒脚本调用的注册功能函数进行分类(分类的好处是可以快速定 位),每类函数对应一个类名,并对每个类分配一独立的内存空间进行存储;步骤20、当机顶盒注册脚本程序时,获取一注册功能函数,并判断该函数对应的类 在内存空间中是否存在,否,则分配一足够大的内存空间(按照系统的资源情况,分配一定 的内存出来)进行存储,是则判断该类的内存空间是否足够存储新的函数(新的函数属于 该类下的另一个注册功能函数),否则继续分配一足够大的内存空间,再转入步骤30,是则 直接进入步骤30 ;步骤30、通过散列法把注册功能函数名的字符串转换为固定长度的数值,其散列 法步骤如下步骤301、把注册功能函数名的字符串全部转换为大写;步骤302、将转换后的字符串从头到尾开始按4个字节来组合成一个32位整型数 据,以此类推直到最后4个字节组合成一个32位整型数据,并把这些32位整型数据进行加 减乘除,以及与或非运算,最终得到一 32位的整型数据;步骤303、把最终得到32位的整型数据作为该注册功能函数名的字符串对应的固 定长度的hash数值;步骤40、将注册功能函数所属类的内存空间中分配一个空间用来存储该注册功能 函数名的字符串、所述固定长度的hash数值以及注册功能函数的指针及注册功能函数的 相关内容,并将空间中的这些数据以链表的形式挂接在该注册功能函数所属类的空间下;步骤50、当机顶盒脚本程序执行一注册功能函数时,机顶盒脚本解析引擎会对脚 本程序所调用的注册功能函数的字符串进行hash运算,得到该注册功能函数对应的hash 数值;步骤60、机顶盒脚本程序分析注册功能函数所属的类,找出该类的内存空间,并将 所述根据函数字符串进行hash运算得到的hash数值与所述内存空间中的固定长度的hash 数值进行比对,找出注册功能函数hash数值相同的数据,然后取出该注册功能函数的字符 串进行比对,如果一样则取出对应注册功能函数的指针及注册功能函数的相关内容(如函 数的属性,特性等)交由脚本解析引擎调用,如果不相同,则继续比对别的注册功能函数的 hash数值。下面举一具体实施例对本专利技术作进一步说明。步骤10、把机顶盒脚本调用的注册功能函数进行分类,如注册功能函数有int islower (int c)、int isprint (int c)、system_api_setvalue (),其中 intislower (int c)、 int isprint (int c)为一类,system_api_setvalue ()为另一类,并对每类函数对应一个类 名,并对每个类分配一独立的内存空间进行存储;步骤20、当机顶盒注册脚本程序时,获取一注册功能函数,并判断该函数对应的类 在内存空间中是否存在,否,则分配一足够大的内存空间(按照系统的资源情况,分配一定 的内存出来)进行存储,是则判断该类的内存空间是否足够存储新的函数(新的函数属于 该类下的另一个注册功能函数),否本文档来自技高网...
【技术保护点】
1.一种机顶盒脚本扩充函数的方法,其特征在于:包括以下步骤:步骤10、把机顶盒脚本调用的注册功能函数进行分类,每类函数对应一个类名,并对每个类分配一独立的内存空间进行存储;步骤20、当机顶盒注册脚本程序时,获取一注册功能函数,并判断该函数对应的类在内存空间中是否存在,否,则分配一足够大的内存空间进行存储,是则判断该类的内存空间是否足够存储新的函数,否则继续分配一足够大的内存空间,再转入步骤30,是则直接进入步骤30;步骤30、通过散列法把注册功能函数名的字符串转换为固定长度的数值,其散列法步骤如下:步骤301、把注册功能函数名的字符串全部转换为大写;步骤302、将转换后的字符串从头到尾开始按4个字节来组合成一个32位整型数据,以此类推直到最后4个字节组合成一个32位整型数据,并把这些32位整型数据进行加减乘除,以及与或非运算,最终得到一32位的整型数据;步骤303、把最终得到32位的整型数据作为该注册功能函数名的字符串对应的固定长度的hash数值;步骤40、将注册功能函数所属类的内存空间中分配一个空间用来存储该注册功能函数名的字符串、所述固定长度的hash数值以及注册功能函数的指针及注册功能函数的相关内容,并将空间中的这些数据以链表的形式挂接在该注册功能函数所属类的空间下;步骤50、当机顶盒脚本程序执行一注册功能函数时,机顶盒脚本解析引擎会对脚本程序所调用的注册功能函数的字符串进行hash运算,得到该注册功能函数对应的hash数值;步骤60、机顶盒脚本程序分析注册功能函数所属的类,找出该类的内存空间,并将所述根据函数字符串进行hash运算得到的hash数值与所述空间中的固定长度的hash数值进行比对,找出注册功能函数hash数值相同的数据,然后取出该注册功能函数的字符串进行比对,如果一样则取出对应注册功能函数的指针及注册功能函数的相关内容交由脚本解析引擎调用,如果不相同,则继续比对别的注册功能函数的hash数值。...
【技术特征摘要】
【专利技术属性】
技术研发人员:方立,
申请(专利权)人:福建新大陆通信科技股份有限公司,
类型:发明
国别省市:35
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。