基于XML的可视化通信协议解析方法及系统技术方案

技术编号:38936592 阅读:16 留言:0更新日期:2023-09-25 09:38
本发明专利技术公开的基于XML的可视化通信协议解析方法及系统,包括:定义xml格式协议文件;读取指定目录下所有的xml协议文件,解析xml协议文件并根据模板文件生成编译器能够识别的代码;将所有的协议分别读取至协议解析器中,将解析协议得到的值保存至对应的对象中,协议所有的字段更新完成后,更新协议数据缓冲区的地址,并触发更新信号;协议解析器初始化完成时,所有协议都会初始化成单例模式并加以管理,每个协议具有独立的信号槽机制与外部模块绑定,当更新信号被触发时外部模块将自动触发与更新信号绑定的接口函数。本发明专利技术扩展性高,通讯效率高,能够减少读写锁对程序调度消耗,降低出错的概率。出错的概率。出错的概率。

【技术实现步骤摘要】
基于XML的可视化通信协议解析方法及系统


[0001]本专利技术涉及
,具体涉及基于XML的可视化通信协议解析方法及系统。

技术介绍

[0002]目前广泛使用的自定通讯协议中,会进行特定的协议规范,例如使用固定长度的协议头加消息体的方式,如图1所示。在通讯的过程中需要解析固定位置的值来执行固定的动作,如果想了解某个协议带来的内容,程序中将对该协议进行特殊处理转化为可视化界面或进行日志输出,如图2所示。
[0003]上述协议规范在应用中,存在如下问题:使用上述方式定义协议,每当增加一个新协议时,程序中需要增加响应的解析字段进行解析,代码中存在大量的判断语句和重复性工作,扩展性差,修改代价高;一个系统中往往存在很多个协议,大多数工具端会摘取某些重点关注的协议字段进行可视化展示以及将协议打印成日志文件,在调试的过程中增加了查询难度,也增加了调试的时间,可视化界面有限,不会对所有协议的字段进行展示,人机交互不友好;若想增加协议可视化内容,实现难度大,对实时信息展示不全面,查看某一时刻所有协议状态的代价高或无法开放所有协议的内容;对收发的协议进行解析后缓存在内存中,程序中多个模块会对该协议同时进行读写操作,常规操作方式为对该内存数据设置读写锁,但当系统中存在大量协议需要进行频繁交互时,读写锁会严重影响系统的执行效率。

技术实现思路

[0004]专利技术目的:本专利技术目的在于针对现有技术的不足,提供基于XML的可视化通信协议解析方法及系统,扩展性高,通讯效率高,能够减少读写锁对程序调度消耗,降低出错的概率。
[0005]技术方案:本专利技术所述基于XML的可视化通信协议解析方法,包括如下步骤:(1)定义xml格式协议文件,包括模板文件和多个xml协议文件,所述模板文件用于提供xml协议文件解析后的协议格式;(2)读取指定目录下所有的xml协议文件,解析xml协议文件并根据模板文件生成编译器能够识别的代码;(3)将所有的协议分别读取至协议解析器中,将解析协议得到的值保存至对应的对象中,协议所有的字段更新完成后,更新协议数据缓冲区的地址,并触发更新信号;(4)协议解析器初始化完成时,所有协议都会初始化成单例模式并加以管理,每个协议具有独立的信号槽机制与外部模块绑定,当更新信号被触发时,外部模块将自动触发与更新信号绑定的接口函数。
[0006]进一步完善上述技术方案,所述xml协议文件采用两层xml格式,外层表示协议头,为所有协议共有字段,以清晰地表现出该协议的含义、作用和方向,内层表示协议的具体参数。
[0007]进一步地,每条所述协议读取后被存储至协议解析器的栈中一个长度为n的环形数据缓冲区域。
[0008]进一步地,所述环形数据缓冲区域的长度根据通讯频率进行调整,若通讯频率很快,则长度增加,反之减小。
[0009]进一步地,所述数据缓冲区域中写指针对应的buffer地址等于读指针buffer地址加1,写指针、读指针指向的数据区永远相连但永不重叠。
[0010]进一步地,当有新数据到来时,首先向协议解析器获取该协议当前写指针对应的数据区,然后对解析后的协议数据向栈中写入,写入完成后先将写地址加1,再将读地址加1,最后触发更新信号。
[0011]进一步地,所述外部模块包括功能模块和可视化协议树,所述协议解析器初始化时,完成功能模块槽函数与对应接口的绑定以及可视化协议树所需数据结构和信号接口的建立;所述功能模块用于获取协议的字段并进行读写操作,其中,所述协议解析器解析到通讯接收到的协议后,会触发更新信号,更新信号被传递给功能模块,所述功能模块接收到更新信号后,会自动触发与该更新信号绑定的槽函数,根据更新信号自动在新的地址进行协议的读写;所述可视化协议树用于获取协议的字段并进行可视化展示,其中,所述协议解析器解析到通讯接收到的协议后,会触发更新信号,更新信号通过信号接口被传递给可视化协议树,所述可视化协议树接收到更新信号后,将自动更新协议树中协议字段对应的参数值。
[0012]用于实现上述基于XML的可视化通信协议解析方法的系统,包括:协议定义模块,用于定义模板文件和xml协议文件,所述模板文件用于提供xml协议文件解析后的协议格式;协议生成器,用读取指定目录下所有xml协议文件,并根据模板文件生成编译器能够识别的源代码;通讯模块,用于分别读取所有xml协议文件并传输至协议解析器;协议解析器,用于将xml协议文件存入栈中,将解析协议得到的值保存至对应的对象中,协议所有的字段更新完成后,更新协议数据缓冲区的地址,并触发更新信号;功能模块,所述功能模块在初始化时会与协议解析器进行绑定,通过接口函数与特定的信号关联起来,以获取协议的字段并进行读写操作,其中,协议字段更新完成后,根据更新信号自动在新的地址进行协议的读写;可视化协议树,用于获取协议的字段并进行可视化展示,其中,协议字段更新完成后,根据更新信号自动在新的地址进行协议的读取。
[0013]进一步地,所述协议解析器初始化完成时,所有协议都会初始化成单例模式并加以管理,每个协议均包含独立的信号槽机制以及可视化协议树构建所需的数据结构和信号接口;所述协议解析器解析到通讯模块接收到的协议后,会触发更新信号,更新信号被传递给可视化协议树或功能模块,所述功能模块接收到更新信号后,会自动触发与该更新信号绑定的接口函数,以执行相应的操作或逻辑,所述可视化协议树接收到更新信号后,将自动更新协议树中协议字段对应的参数值。
[0014]进一步地,当有新数据到来时,首先向协议解析器获取该协议当前写指针对应的数据区,然后对解析后的协议数据向栈中写入,写入完成后先将写地址加1,再将读地址加1,最后触发更新信号。
[0015]有益效果:与现有技术相比,本专利技术的优点在于:本专利技术在定义xml格式协议文件
时,采用模板文件提供xml协议文件解析后的协议格式,扩展性高,只需新增、修改或删除xml文件即完成对协议的更改,程序主体代码无需改动,对xml文件进行重新编译完成协议的扩展和维护。采用环形数据缓冲区域对协议字段进行存储,每次读写后地址自动加一,通讯效率高,减少读写锁对程序调度消耗,减少出问题的概率。协议字段更新后,触发更新信号发送至关联的可视化协议树,可视化高,所有协议可在不修改代码情况进行全部展示。人机交互方便,所有协议在编译时会建立数据结构,其中包含树形结构需要的对象和信号接口等等,在程序初始化时,协议树模块会对所有协议的数据结构进行解析,完成树形接口的建立和信号与槽函数的绑定,从而支持自动刷新实时值和修改协议后直接发送。
附图说明
[0016]图1是现有常用协议体格式示意图;图2是现有常用协议处理方式示意图;图3是本专利技术中协议交互流程图;图4是本专利技术中解析器工作原理图;图5是本专利技术协议交互流程图;图6是本专利技术控制附属设备流程图。
具体实施方式
[0017]下面通过附图对本专利技术技术方案进行详细说明,但是本专利技术的保护范围不局限于所述实施例。
[0018]实施例1:如图3所示的基于XML的可视化通信本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于XML的可视化通信协议解析方法,其特征在于,包括如下步骤:(1)定义xml格式协议文件,包括模板文件和多个xml协议文件,所述模板文件用于提供xml协议文件解析后的协议格式;(2)读取指定目录下所有的xml协议文件,解析xml协议文件并根据模板文件生成编译器能够识别的代码;(3)将所有的协议分别读取至协议解析器中,将解析协议得到的值保存至对应的对象中,协议所有的字段更新完成后,更新协议数据缓冲区的地址,并触发更新信号;(4)协议解析器初始化完成时,所有协议都会初始化成单例模式并加以管理,每个协议具有独立的信号槽机制与外部模块绑定,当更新信号被触发时,外部模块将自动触发与更新信号绑定的接口函数。2.根据权利要求1所述的基于XML的可视化通信协议解析方法,其特征在于:所述xml协议文件采用两层xml格式,外层表示协议头,为所有协议共有字段,以清晰地表现出该协议的含义、作用和方向,内层表示协议的具体参数。3.根据权利要求1所述的基于XML的可视化通信协议解析方法,其特征在于:每条所述协议读取后被存储至协议解析器的栈中一个长度为n的环形数据缓冲区域。4.根据权利要求3所述的基于XML的可视化通信协议解析方法,其特征在于:所述环形数据缓冲区域的长度根据通讯频率进行调整,若通讯频率很快,则长度增加,反之减小。5.根据权利要求3所述的基于XML的可视化通信协议解析方法,其特征在于:所述数据缓冲区域中写指针对应的buffer地址等于读指针buffer地址加1,写指针、读指针指向的数据区永远相连但永不重叠。6.根据权利要求5所述的基于XML的可视化通信协议解析方法,其特征在于:当有新数据到来时,首先向协议解析器获取该协议当前写指针对应的数据区,然后对解析后的协议数据向栈中写入,写入完成后先将写地址加1,再将读地址加1,最后触发更新信号。7.根据权利要求6所述的基于XML的可视化通信协议解析方法,其特征在于:所述外部模块包括功能模块和可视化协议树,所述协议解析器初始化时,完成功能模块槽函数与对应接口的绑定以及可视化协议树所需数据结构和信号接口的建立;所述功能模块用于获取协议的字段并进行读写操作,其中,所述协议解析器解析到通讯接收到的协议后,...

【专利技术属性】
技术研发人员:马正晖刘爽闵济海
申请(专利权)人:南京天创电子技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1