本发明涉及产品测试、分析及评估软件领域,尤其涉及一种串行通信信息协议解析方法。
背景技术:
在产品测试过程中,由于不同产品的通信协议往往会不相同,因此需要针对不同的产品编辑相应的解析软件,而且常规的协议解析软件的协议内容可读性差,不易修改,大大降低了产品研制时测试任务的工作效率。
技术实现要素:
为了解决现有技术中存在的产品通信协议不统一,需要不断修改测试软件,软件对协议内容可读性差,不易修改,测试工作效率低下等问题,本发明提出了一种串行通信信息协议通用解析方法。
为了解决上述技术问题,本发明的技术方案如下:
一种串行通信信息协议通用解析方法,包括如下步骤:
步骤一、根据通信信息协议填写配置参数文件;所述配置参数包括协议字节长度、帧头标识、校验方式、变量的特征参数,变量的特征参数包括变量说明、变量字节长度、变量缩放系数、变量类型、多字节变量收发顺序;
步骤二、查找帧头标识;
步骤三、判断是否找到帧头标识;
当找到帧头标识,跳至步骤四,否则判断是否是通信信息数据结尾,若判断为是,解析结束,否则返回步骤二;
步骤四、从帧头标识开始截取通信信息的协议字节长度,判定帧头标识到待解析数据结尾的字节个数是否小于协议字节长度;
若帧头标识到待解析数据结尾的字节个数小于协议字节长度,则解析结束,否则,跳至至步骤五;
步骤五、对通信信息协议进行校验判断;
若校验结果不正确,则丢弃步骤二中帧头标识长度的字节并返回步骤二重新执行;否则跳至步骤六;
步骤六、读取第i个变量,顺序解析第i个变量的特征参数,i=1…n,n为变量个数;
步骤七、判断第i个变量是否为最后一个变量信息;
若是,则返回步骤二重新开始查找帧头标识,否则,返回步骤六读取下一个变量。
进一步的,所述步骤六中,顺序解析第i个变量的特征参数进一步包括:
1.读取变量说明;
2.读取变量字节长度;
3.根据多字节变量收发顺序重新排列变量字节数据顺序;
4.根据变量类型将变量字节数据转换转为十进制数;
5.除以变量缩放系数还原真实物理信息。
本发明所达到的有益效果:
本发明中,通过使用串行通信信息协议通用解析方法,根据信息协议的字节长度、帧头标识、校验方式和变量的特征参数填写不同产品的信息协议配置参数文件,在产品开始测试前先加载该产品的配置参数文件,即可实现对产品输出信息进行实时解析,可实现产品的在线数据显示、分析及评估;此外,产品信息协议可通过配置文件读取和修改,增加了协议的可读性及可修改性,因此可通过修改配置文件来适应不同的信息协议;对于那些为客户开发提供测试、评估软件的企业提出了一种信息协议通用解析的解决方案,无需再为每种产品定制不同的软件通信接口,显著提高了测试软件的通用性。
附图说明
图1为本发明提出的一种串行通信信息协议的配置参数文件模板;
图2为本发明提出的一种串行通信信息协议通用解析的流程图。
具体实施方式
下面结合附图对本发明作进一步详细说明。
与传统解析方法相比,一种串行通信信息协议通用解析方法主要是对串行通信信息协议进行提炼及统一,并以配置文件的形式向解析者开放,使得本发明的解析方法可以适用于几乎所有串行通信信息的协议解析。为了达到协议解析的通用目的,需要解决多种串行通信信息协议格式统一或设置通用的问题。
本发明实现了将串行通信信息协议统一为由配置参数进行表达。参照图1,在串行通信信息协议的配置文件模板中,首先通信协议的配置参数包括协议字节长度、帧头标识、校验方式、变量的特征参数;协议字节长度是通信中一个周期传输的长度,单位为字节个数;协议的帧头标识,以十六进制的标识,多个字节之间以空格为间隔符;协议信息的校验方式,表征信息传输过程中的校验方法。
其次通信协议的变量的特征参数描述包括变量说明、变量字节长度、变量类型、变量缩放系数、多字节变量收发顺序;变量说明即变量名用于显示;变量字节长度分为1~8个字节八种;变量类型分为无符号整型(u)、有符号整型(i)、单精度浮点(f)和双精度浮点(d)四种;变量缩放系数用于描述变量发送时放大或变量接收时还原的倍数,变量缩放系数为可带小数的十进制数;多字节变量收发顺序分为先低后高(lh)和先高后低(hl)两种。
参照图2,本发明提供的一种串行通信信息协议通用解析方法,包括如下步骤:
步骤一、根据通信信息协议填写配置参数文件;所述配置参数包括协议字节长度、帧头标识、传输周期、校验方式、变量的特征参数,变量的特征参数包括变量说明、变量字节长度、变量缩放系数、变量类型、多字节变量收发顺序。
步骤二、查找帧头标识;
步骤三、判断是否找到帧头标识;
当找到帧头标识,跳至步骤四,否则判断是否是通信信息数据结尾,若判断为是,解析结束,否则返回步骤二;
步骤四、从帧头标识开始截取通信信息的协议字节长度,判定帧头标识到待解析数据结尾的字节个数是否小于协议字节长度;
若帧头标识到待解析数据结尾的字节个数小于协议字节长度,则解析结束,否则,跳至至步骤五;
步骤五、对通信信息协议进行校验判断;
若校验结果不正确,则丢弃步骤二中帧头标识长度的字节并返回步骤二重新执行;否则跳至步骤六;
步骤六、读取第i个变量,顺序解析第i个变量的特征参数,i=1…n,n为变量个数;
具体如下:
6.1读取变量说明;
6.2读取变量字节长度;
6.3根据变量收发顺序重新排列变量字节数据顺序;
6.4根据变量类型将变量字节数据转换转为十进制数;
6.5除以变量缩放系数还原真实物理信息;
步骤七、判断第i个变量是否为最后一个变量信息;
若是,则返回步骤二重新开始查找帧头标识,否则,返回步骤六读取下一个变量。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。