[发明专利]一种基于TLV格式协议的编解码代码生成装置及方法无效
申请号: | 201210524752.9 | 申请日: | 2012-12-10 |
公开(公告)号: | CN103036877A | 公开(公告)日: | 2013-04-10 |
发明(设计)人: | 刘元凯;张立 | 申请(专利权)人: | 北京中创信测科技股份有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100081 北京市海淀区中关*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 tlv 格式 协议 解码 代码 生成 装置 方法 | ||
1.一种基于TLV格式协议的编解码代码生成装置,其特征在于该装置包括以下模块:
TLV格式协议的配置文件生成模块,将LTE的TLV格式协议所有消息用一种树形结构进行表示;
配置文件解析和编解码代码生成模块,用于对输入的TLV格式协议配置文件进行解析,并根据代码生成规则产生相应的TLV格式协议的编解码代码;
编解码代码文件生成模块,TLV格式协议的编解码代码采用类结构进行实现,即协议配置文件生成模块中的配置文件中的树形结构的节点都由相应的类类型进行表示。
2.根据权利要求1所述的装置,其特征在于:
在生成的TLV格式协议的配置文件中的节点包括以下字段:
ID=#N,用于表示该节点在树形结构中相对于兄弟节点的顺序ID;
MAN=Y/N,用于表示该节点是否为必选,即记录协议消息中的某字段是否为必选字段,Y为必选字段,N为可选字段;
NAME=字符串,用于表示该节点的名字,即记录协议消息中的某字段名称;
NEXT=字符串,用于表示该节点是否为树形结构中的叶子节点,如果为叶子节点则值为NoField,如果为非叶子节点,则值为该节点的所有子节点的集合名称;
TYPE=节点类型,用于表示节点的类型;
LENGTH=#N,当节点为叶子节点时,用于表示该叶子节点所表示的值的长度;
TAG=#N,当节点为TLVSequence_TV、TLVSequence_TLV、TLVSequence_TLVE类型时,用于记录该节点的TAG值;
RelationID=#N,当该节点为叶子节点时,用于记录和该节点有关联的节点ID,一般会从关联节点得到该节点所表示值的长度信息。
3.根据权利要求1所述的装置,其特征在于:
TLV格式协议的配置文件中用树形结构将所有节点组织起来,节点的树形结构采用父节点记录子节点集合名称的方式实现。
4.根据权利要求3所述的装置,其特征在于:
为了表示“父节点”和所有子节点之间的父子关系,先将所有子节点表示在集合中,然后在父节点的字段中指定子节点的集合,建立父节点和子节点之间的关系,子节点又可以指定自己的子节点集合,形成节点的树形结构;而TLV格式协议的每一个消息就是从树形结构的根节点开始的一个子树。
5.根据权利要求1所述的装置,其特征在于配置文件解析和编解码代码生成模块进一步包括:
读入模块,用于读入TLV格式协议的配置文件,生成一个节点队列,读出树形结构的根节点,并将根节点加入队列;
第一判断模块,判断节点队列是否为空,如果为空则转到终止模块,否则转入取出模块;
取出模块,从节点队列中取出一个节点;
生成模块,判断取出的节点类型,并根据节点的类型在TLV协议编解码代码中生成该节点类型所对应的类实例;
信息读取模块,读取该取出节点所带的信息,并将这些信息赋值到为该节点所生成的类实例中;
父子关系形成模块,将为该取出的节点所生成的类实例添加到该节点的父节点所对应的类实例的孩子列表中,也即在TLV格式协议的编解码代码中使该节点和父节点分别对应的类实例形成父子关系,并记录在父节点的类实例代码中;
第二判断模块,判断该取出的节点是否为叶子节点,通过节点的字段的值进行判断,如果判断为叶子节点,转到第一判断模块;否则为非叶子节点,转到加入模块;
加入模块,将该非叶子节点的所有子节点按顺序加入到节点队列中,转到第一判断模块;
终止模块,结束配置文件的解析和代码生成。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京中创信测科技股份有限公司,未经北京中创信测科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210524752.9/1.html,转载请声明来源钻瓜专利网。