1.一种实现OMCI协议栈代码自动生成的方法,包括如下步骤:
步骤一,根据ITU通信标准列出的ME对象,对ME对象进行定义申明,实现ME定义脚本的设计;
步骤二,根据ITU通信标准申明的ME对象操作方法及属性特性,从步骤一的ME定义脚本中获取ME对象的表述来生成功能代码,实现ME功能实现脚本的设计,所述ME功能实现脚本的规则生成的文件包括协议栈公用函数源码文件、协议栈ME数据库结构体定义头文件以及协议栈ME私有函数接口源文件中的部分或全部,所述协议栈公用函数源码文件生成规则如下:获取所有ME列表;
遍历所有ME列表;
根据ME的列表索引返回该ME的最大参数个数、所有mib的初始化函数、根据ME的列表索引返回该ME信息的全局变量内存地址、根据ME的列表索引返回该ME的本地数据库可写内存地址、根据ME的列表索引返回该ME的本地数据库可读内存地址、根据ME的列表索引擦除该ME的本地数据库数据、根据ME的列表索引返回该ME的数据长度、根据ME的列表索引返回该ME的操作支持类型、用于mib上报过程的ME数据片段初始化函数;
步骤三,采用该ME定义脚本和ME功能实现脚本协同的方式,实现OMCI协议栈代码的自动生成。
2.如权利要求1所述一种实现OMCI协议栈代码自动生成的方法,其特征在于:该ME定义脚本包括该ME的全局属性的定义以及该ME中所有参数的属性定义。
3.如权利要求1所述一种实现OMCI协议栈代码自动生成的方法,其特征在于:该协议栈ME数据库结构体定义头文件的生成规则如下:获取该ME定义脚本中关于该ME的名称,用于申明该结构体名称;
循环遍历该ME所有的参数属性,依次判断该参数属性的数据类型;
若为无符号字符型的参数,则代码生成以无符号字符型定义该属性;若为无符号短整型的参数,则代码生成以无符号短整型定义该属性;若为无符号整型的参数,则代码生成以无符号整型定义该属性;若为字符串类型的参数,则代码生成以字符串类型定义该属性。
4.如权利要求1所述一种实现OMCI协议栈代码自动生成的方法,其特征在于:该协议栈ME私有函数接口源文件包含的函数包括ME设置回调函数、ME取值回调函数、ME创建回调函数、ME删除回调函数、OMCI报文转ME参数函数、按ME参数掩码发消息函数中的部分或全部。
5.如权利要求4所述一种实现OMCI协议栈代码自动生成的方法,其特征在于,该ME取值回调函数生成规则如下:根据参数个数,循环遍历ME表的所有参数;每个参数都拥有自己的掩码作为执行条件;若成立再判断该参数的数据类型,根据参数的数据类型的不同长度,将数据库中参数值拷贝到一段内存中,组成回复的OMCI报文。
6.如权利要求5所述一种实现OMCI协议栈代码自动生成的方法,其特征在于,该OMCI报文转ME参数函数生成规则如下:根据参数个数,循环遍历ME表的所有参数;每个参数都拥有自己的掩码作为执行条件,若成立再判断该参数的数据类型,根据无符号字符型、无符号短整型、无符号整形、字符串类型分别做不同长度的内存拷贝动作,实现OMCI报文内容到ME参数值的转换。
7.如权利要求5所述一种实现OMCI协议栈代码自动生成的方法,其特征在于,该按ME参数掩码发消息函数的生成规则如下:根据参数个数,循环遍历所有参数;每个参数都拥有自己的掩码作为执行条件,若成立再判断是否支持手动处理,若支持手动处理则生成手动处理函数,若不支持则使用该参数的消息ID和ME通信进程名称进行消息的发送。
8.一种实现OMCI协议栈代码自动生成的系统,包括:
ME定义脚本设计单元,用于根据ITU通信标准列出的ME对象,对ME对象进行定义申明,实现ME定义脚本的设计;
ME功能实现脚本设计单元,用于根据ITU通信标准申明的ME对象操作方法及属性特性,从该ME定义脚本设计单元的ME定义脚本中获取ME对象的表述来生成功能代码,实现ME功能实现脚本的设计,所述ME功能实现脚本的规则生成的文件包括协议栈公用函数源码文件、协议栈ME数据库结构体定义头文件以及协议栈ME私有函数接口源文件中的部分或全部,所述协议栈公用函数源码文件生成规则如下:获取所有ME列表;
遍历所有ME列表;
根据ME的列表索引返回该ME的最大参数个数、所有mib的初始化函数、根据ME的列表索引返回该ME信息的全局变量内存地址、根据ME的列表索引返回该ME的本地数据库可写内存地址、根据ME的列表索引返回该ME的本地数据库可读内存地址、根据ME的列表索引擦除该ME的本地数据库数据、根据ME的列表索引返回该ME的数据长度、根据ME的列表索引返回该ME的操作支持类型、用于mib上报过程的ME数据片段初始化函数;
代码自动生成单元,用于采用该ME定义脚本和ME功能实现脚本协同的方式,实现OMCI协议栈代码的自动生成。