一种工程机械设备工况数据解析方法技术

技术编号:33289110 阅读:16 留言:0更新日期:2022-05-01 00:04
本发明专利技术公开了一种工程机械设备工况数据解析方法,由于工程机械设备工况以字节报文的形式上传,而解析工况报文的功能集类型多样且内容多变,导致工况解析复杂繁琐,通过解析配置文件与功能集一起解析工况报文,实现了一种适配各种功能集的解析方法。本发明专利技术提供的一种工程机械设备工况数据解析方法,解析流程清晰,简单高效。工况解析配置化,使用简单,兼容不同厂家的功能集。在功能集解析规则错误的情况下,解析流程能够正常运行,容错性强。容错性强。容错性强。

【技术实现步骤摘要】
一种工程机械设备工况数据解析方法


[0001]本专利技术涉及一种工程机械设备工况数据解析方法,属于工业大数据处理


技术介绍

[0002]在工程机械设备物联网场景中,工况数据以字节报文的形式上传到iot中心,接着iot中心使用xml形式的功能集来解析字节报文,功能集里面定义工况tag内容和每个item项的解析规则,基础的报文格式是TLV格式,即固定字节长度的tag标识,固定字节长度的length标识,后面紧接着由length标识指定的value。
[0003]但是功能集的内容复杂,包含tag嵌套、length标识长度由特殊tag指定、length标识长度由功能集tag标签的length属性指定、tag在功能集中不存在、package中item项超出对应的字节和功能集中package id是否省略特殊字符等各种复杂情况,导致不同的设备类型使用的不同解析方法,常用做法将所有的item项加载到内存数组,通过比对的方式解析,这种方法只用于包含condition的item项,并要求包含condition的item项必须在作为判断条件的item项后面,所以,现有方法兼容性不强且代码可读性差。
[0004]因此,本领域技术人员急需要解决功能集内容多样性导致的工况数据解析复杂、效率低、容错差等问题。

技术实现思路

[0005]目的:为了克服现有技术中存在的不足,本专利技术提供一种工程机械设备工况数据解析方法。
[0006]技术方案:为解决上述技术问题,本专利技术采用的技术方案为:一种工程机械设备工况数据解析方法,包括如下步骤:步骤0:针对不同类型的功能集抽象提取出内容信息,所述内容信息包括:固定tag字节长度、固定length字节长度、固定value字节长度、可变value字节长度信息、固定tag、功能集package中tag属性名、是否移除tag内容中前面连续的0字符标识和嵌套tag信息,将内容信息写入解析配置文件。
[0007]步骤1:从解析配置文件中读取固定tag字节长度参数,判断固定tag字节长度参数是否大于0,如果大于0,执行步骤2。否则判断固定tag参数是否为空,如果固定tag参数不为空,执行步骤5;否则结束解析。
[0008]步骤2:从解析配置文件中读取固定length字节长度参数,判断固定length字节长度参数是否大于0,如果大于0,执行步骤6;否则执行步骤3。
[0009]步骤3:从解析配置文件中读取固定value字节长度参数,判断固定value字节长度参数是否大于0,如果不为空,执行步骤7;否则执行步骤4。
[0010]步骤4:从解析配置文件中读取可变value字节长度信息,判断可变value字节长度信息是否不为空,如果不为空,执行步骤8;否则执行步骤9。
[0011]步骤5:根据固定tag参数和功能集package中tag属性名参数,从功能集中获取对应的package节点信息,如果package节点存在,则执行步骤10;否则跳过此tag解析。
[0012]步骤6:根据固定tag字节长度参数和固定length字节长度参数,从value中截取tag和length信息,再根据length信息,从value中截取该tag信息对应的value,根据功能集package中tag属性名参数和解析配置文件中的是否移除tag内容中前面连续的0字符标识参数,从功能集中获取tag信息对应的package节点信息,如果package节点存在,则执行步骤10;否则跳过此tag解析。
[0013]步骤7:根据固定tag字节长度参数和固定value字节长度参数,从value中截取tag信息和该tag信息对应的value,根据功能集package中tag属性名参数和解析配置文件中的是否移除tag内容中前面连续的0字符标识参数,从功能集中获取tag信息对应的package节点信息,如果package节点存在,则执行步骤10;否则跳过此tag解析。
[0014]步骤8:根据固定tag字节长度参数和可变value字节长度参数,获取各个tag信息对应的value的长度,从value中截取tag信息和tag信息对应的value,根据功能集package中tag属性名参数和解析配置文件中的是否移除tag内容中前面连续的0字符标识参数,从功能集中获取tag信息对应的package节点信息,如果package节点存在,则执行步骤10;否则跳过此tag解析。
[0015]步骤9:根据固定tag参数和功能集package中tag属性名参数,从功能集中获取对应的package节点信息,如果package节点存在,根据该package标签中length属性值来截取该tag信息对应的value,则执行步骤10;否则跳过此tag解析。
[0016]步骤10:根据嵌套tag信息参数是否为空,如果不为空,则执行步骤1;否则解析无condition标签的item项,依次执行步骤11、12和13,步骤11:根据byte标签获取该item项在value中起始字节位置和占用字节长度,如果byte起始字节位置或byte起始字节位置加上占用字节长度超过value长度,则跳过此item解析;否则根据endian标签指定大小端方式,在大端存储情况下,对value从左往右按顺序截取字节信息,在小端存储情况下,对value从右往左逆序截取字节信息。
[0017]步骤12:如果存在bit标签的话,根据bit标签的属性值,获取该item项由byte标签获取的字节长度,byte标签获取的字节长度包括bit起始比特位置和占用比特长度,如果bit起始比特位置或bit起始比特位置加上占用比特长度超过byte标签获取的字节长度,则跳过此item项解析,否则,按bit起始比特位置和占用比特长度获取比特信息。
[0018]步骤13:根据截取的字节或比特信息,优先使用比特信息,结合expression标签对应的表达式和type标签对应的数据类型,计算出此item项的值,此item解析结束。
[0019]作为优选方案,所述步骤13还包括:判断原始报文value是否还有部分没有解析,如果有剩余部分没有解析,执行步骤1;否则解析流程结束。
[0020]作为优选方案,还包括:所述步骤10还包括:根据嵌套tag信息参数是否为空,如果不为空,则执行步骤1;否则解析有condition标签的item项,执行步骤14。
[0021]步骤14:根据condition 标签对应javascript判断表达式计算结果,如果为true,则按步骤11、12和13解析此item项;否则跳过此item项解析。
[0022]作为优选方案,所述步骤14还包括:判断原始报文value是否还有部分没有解析,如果有剩余部分没有解析,执行步骤1;否则解析流程结束。
[0023]作为优选方案,所述不同类型的功能集包括:不同工况类型功能集,不同协议类型功能集,不同厂家类型功能集。
[0024]作为优选方案,不同本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种工程机械设备工况数据解析方法,其特征在于:包括如下步骤:步骤0:针对不同类型的功能集抽象提取出内容信息,所述内容信息包括:固定tag字节长度、固定length字节长度、固定value字节长度、可变value字节长度信息、固定tag、功能集package中tag属性名、是否移除tag内容中前面连续的0字符标识和嵌套tag信息,将内容信息写入解析配置文件;步骤1:从解析配置文件中读取固定tag字节长度参数,判断固定tag字节长度参数是否大于0,如果大于0,执行步骤2;否则判断固定tag参数是否为空,如果固定tag参数不为空,执行步骤5;否则结束解析;步骤2:从解析配置文件中读取固定length字节长度参数,判断固定length字节长度参数是否大于0,如果大于0,执行步骤6;否则执行步骤3;步骤3:从解析配置文件中读取固定value字节长度参数,判断固定value字节长度参数是否大于0,如果不为空,执行步骤7;否则执行步骤4;步骤4:从解析配置文件中读取可变value字节长度信息,判断可变value字节长度信息是否不为空,如果不为空,执行步骤8;否则执行步骤9;步骤5:根据固定tag参数和功能集package中tag属性名参数,从功能集中获取对应的package节点信息,如果package节点存在,则执行步骤10;否则跳过此tag解析;步骤6:根据固定tag字节长度参数和固定length字节长度参数,从value中截取tag和length信息,再根据length信息,从value中截取该tag信息对应的value,根据功能集package中tag属性名参数和解析配置文件中的是否移除tag内容中前面连续的0字符标识参数,从功能集中获取tag信息对应的package节点信息,如果package节点存在,则执行步骤10;否则跳过此tag解析;步骤7:根据固定tag字节长度参数和固定value字节长度参数,从value中截取tag信息和该tag信息对应的value,根据功能集package中tag属性名参数和解析配置文件中的是否移除tag内容中前面连续的0字符标识参数,从功能集中获取tag信息对应的package节点信息,如果package节点存在,则执行步骤10;否则跳过此tag解析;步骤8:根据固定tag字节长度参数和可变value字节长度参数,获取各个tag信息对应的value的长度,从value中截取tag信息和tag信息对应的value,根据功能集package中tag属性名参数和解析配置文件中的是否移除tag内容中前面连续的0字符标识参数,从功能集中获取tag信息对应的package节点信息,如果package节点存在,则执行步骤10;否则跳过此tag解析;步骤9:根据固定tag参数和功能集package中tag属性名参数,从功能集中获取对应的pac...

【专利技术属性】
技术研发人员:高晨
申请(专利权)人:徐工汉云技术股份有限公司
类型:发明
国别省市:

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

1