RTCM3数据解码方法与流程

文档序号:11285913阅读:5169来源:国知局

本发明涉及数据解码技术领域,具体涉及一种rtcm3数据解码方法。



背景技术:

国际海运事业无线电技术委员会(rtcm,radiotechnicalcommissionformaritimeservices)其推出了多种差分协议标准,其中rtcm3协议泛指现在已经官方发布的rtcm3.0/rtcm3.1/rtcm3.2协议。

随着位置数据服务地逐渐普及,以rtcm3数据格式进行数据播发已经逐渐为市场所接纳。当前针对rtcm3数据格式的解码方式,主要是按照rtcm3文档中定义的内容逐项进行编解码工作,这样导致针对rtcm3的编解码程序因人而异,同时不易做到流程化模版化,容易引入人为的错误,导致耗费大量的人力进行测试验证以及问题排查。rtcm3数据格式包含大量的消息格式,针对每一种消息格式以传统的办法进行编解码,不利于快速响应业务需求。

现有技术缺点:

1、易出错。目前的rtcm3编解码方式,开发时需要逐项切分消息进行,逐行进行编码,切分错误时比较容易出错。

2、排查困难。根据上一点,一旦出错,需要逐行代码排查问题,效率比较低。

3、可维护性差,可读性差。目前不同的人采用不同的编解码方式进编解码,风格差异较大,其他开发人员维护比较困难,可读性较差。



技术实现要素:

本发明解决了传统的rtcm3编解码按部就班地按照rtcm3协议文档定义,逐个数据项进行编解码,没有流程化,不利于快速rtcm3子消息编解码开发和验证的技术问题。

本发明采用的技术方案是:

一种rtcm3数据解码方法,其特征在于,步骤如下:

步骤1,程序启动。

步骤2,读入rtcm3数据消息模版文件。

步骤3,判断rtcm3数据消息模版文件是否加载成功;如果加载成功,执行步骤4;如果加载失败,执行步骤8。

步骤4,进行验证工作。

步骤5,判断是否验证成功;如果验证成功,执行步骤6;如果验证失败,输出错误进行错误处理,执行步骤8。

步骤6,生成程序文件。

步骤7,自动生成rtcm3消息编解码文件,执行步骤9。

步骤8,做失败处理,执行步骤9。

步骤9,程序结束。

进一步地,所述步骤2中rtcm3数据消息模版文件包括消息名称和消息数据项,消息数据项包括消息修饰符、rtcm3数据项、消息数据项名称和消息数据项顺序。

进一步地,所述步骤2中rtcm3编解码生成器读入rtcm3数据消息模版文件,根据消息名称生成程序文件。

进一步地,所述消息修饰符为single或者repeated类型。

进一步地,所述步骤4中验证工作如下:

验证rtcm3数据消息模版文件格式是否正确;

确定消息修饰符和数据字段是否已经定义,保证字段值在消息数据项中的定义顺序无误。

进一步地,所述步骤7中在程序文件内部根据消息数据项的定义自动生成rtcm3消息编解码文件。

本发明的有益效果在于,通过自研的rtcm3数据编解码生成器,读取模版文件,自动生成rtcm3数据编解码代码,提高编码效率,减少人为错误的引入,实现了编解码流程化。

附图说明

图1是本发明rtcm3数据解码方法流程图。

具体实施方式

本发明通过分析rtcm3数据格式文档,提出模版化的概念,通过自研的rtcm3数据编解码生成器,读取rtcm3数据消息模版文件,自动生成rtcm3数据编解码文件,提高编码效率,减少人为错误的引入,实现了编解码流程化。下文中,结合附图和实施例对本发明作进一步阐述。

本发明主要由两部分组成,rtcm3数据消息模版文件和rtcm3编解码生成器。

rtcm3数据消息模版文件用来格式化定义出每条消息的具体内容,包括消息名称和消息数据项,其中消息数据项包括消息修饰符、rtcm3数据项、消息数据项名称和消息数据项。

消息修饰符包括single/repeated类型。single修饰符表示所述消息数据项,不依赖于其他数据项。repeated修饰符表示所述消息数据项是重复类型数据项,重复次数依赖于其他数据项。repeated修饰符参数表示所述消息数据项重复次数依赖于那个消息数据项。

rtcm3数据项是根据rtcm3数据格式抽象出来的概念。rtcm3数据项说明了所述消息数据项在rtcm3数据格式文档中的业务概念范畴。对应于rtcm3数据格式文档中的业务项,数据类型以及有效值范围。

消息数据项顺序表示所述消息数据项rtcm3消息中的具体顺序。

rtcm3编解码生成器读入rtcm3数据消息模版文件,根据消息名称生成具体的程序文件。在程序文件内部根据消息数据项的定义自动生成rtcm3消息编解码文件。

图1是本发明rtcm3数据解码方法流程图,步骤如下:

步骤1,程序启动,调用start方法。

步骤2,读入rtcm3数据消息模版文件,消息名称为rtcm1005,将会生成程序文件名为rtcm1005.java的程序文件。程序文件中df开始的数据字段都是在rtcm32标准文件格式中定义的数据字段。数据字段主要包含该数据字段的业务含义/字段长度/字段值范围。如果验证失败,则输出错误进行错误处理。

步骤3,判断rtcm3数据消息模版文件是否加载成功;如果加载成功,执行步骤4;如果加载失败,执行步骤8。

步骤4,进行验证工作:

1)验证rtcm3数据消息模版文件格式是否正确。如所述rtcm1005在最外层,包括了所有的字段,并且以message开始整个消息体的定义。

2)确定修饰符和数据字段是否已经定义。保证字段值在消息数据项中的定义顺序无误。不会出现漏掉和乱序的情况。

步骤5,判断是否验证成功;如果验证成功,执行步骤6;如果验证失败,输出错误进行错误处理,执行步骤8;

步骤6,生成具体的rtcm1005.java程序文件;

步骤7,程序文件根据rtcm3数据消息模版文件的定义自动生成rtcm3消息编解码文件,执行步骤9;

步骤8,做失败处理,执行步骤9;

步骤9,程序结束。

本发明是一种离线处理程序,性能不是主要的追求目标,一般的计算语言比如java/c/c++/c#均可以实施。

本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1