CN116155745A - 报文解析方法、装置、存储介质及计算机设备 - Google Patents
报文解析方法、装置、存储介质及计算机设备 Download PDFInfo
- Publication number
- CN116155745A CN116155745A CN202211647207.9A CN202211647207A CN116155745A CN 116155745 A CN116155745 A CN 116155745A CN 202211647207 A CN202211647207 A CN 202211647207A CN 116155745 A CN116155745 A CN 116155745A
- Authority
- CN
- China
- Prior art keywords
- target
- attribute
- data
- attribute data
- object model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种报文解析方法、装置、存储介质及计算机设备,涉及数据处理技术领域,可以解决现有技术中对特定属性需要进行定制化开发导致开发成本高且效率低的问题。包括:获取目标设备的设备属性表,将设备属性表配置到物模型中,其中,设备属性表包括设备属性以及与设备属性对应的属性参数;获取目标设备上传的报文,利用物模型读取报文得到初始属性数据;利用物模型解析初始属性数据得到目标属性数据。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及到一种报文解析方法、装置、存储介质及计算机设备。
背景技术
在物联网云平台上,会接入大量设备,每个设备上安装通信终端,用于向云平台发送十六进制的报文,云平台用于解析该报文,从而得知设备属性数据,然而由于接入的设备可能是来自不同厂商,每个厂商传输的协议会有一定的出入,除了共有的属性,各厂商拥有自定义的特定属性。这造成了不同设备厂商上报的报文有一定差异,即对于特定属性就无法解析。
目前,云平台在解析报文时,每增加一个厂商或者设备型号就需要对特定属性进行定制化开发,需要新增代码,导致开发成本高以及开发效率低。
发明内容
有鉴于此,本申请提供了一种报文解析方法、装置、存储介质及计算机设备,涉及数据处理技术领域,可以解决现有技术中对特定属性需要进行定制化开发导致开发成本高且效率低的问题。
根据本申请的一个方面,提供了一种报文解析方法,该方法包括:
获取目标设备的设备属性表,将所述设备属性表配置到物模型中,其中,所述设备属性表包括设备属性以及与所述设备属性对应的属性参数;
获取所述目标设备上传的报文,利用所述物模型读取所述报文得到初始属性数据;
利用所述物模型解析所述初始属性数据得到目标属性数据。
可选地,所述属性参数包括数据地址、顺序、占用长度;
所述利用所述物模型读取所述报文得到初始属性数据,包括:
读取所述报文中的目标数据地址,在所述物模型中匹配与所述目标数据地址对应的至少一个目标设备属性,获取每个所述目标设备属性的目标顺序与目标占用长度;
根据所述目标顺序以及所述目标占用长度依次读取所述报文中的与每个所述目标设备属性对应的初始属性数据。
可选地,所述属性参数还包括:解析单位,其中,所述解析单位包括位与字节;
所述根据所述目标顺序以及所述目标占用长度依次读取所述报文中的与每个所述目标设备属性对应的初始属性数据,还包括:
获取每个所述目标设备属性对应的目标解析单位;
若所述目标解析单位为位,则根据所述目标顺序以及所述目标占用长度依次按位为一个读取粒度读取所述报文中的与每个所述目标设备属性对应的初始属性数据;
若所述目标解析单位为字节,则根据所述目标顺序以及所述目标占用长度依次按字节为一个读取粒度读取所述报文中的与每个所述目标设备属性对应的初始属性数据。
可选地,在利用所述物模型解析所述初始属性数据得到目标属性数据之前,还包括:
确定所述目标设备属性的初始属性数据范围;
判断所述初始属性数据是否在所述初始属性数据范围内;
若是,则利用所述物模型解析所述初始属性数据得到目标属性数据;
若否,则删除所述初始属性数据。
可选地,所述属性参数还包括:数据类型;
所述利用所述物模型解析所述初始属性数据得到目标属性数据,包括:
确定与所述目标设备属性对应的目标数据类型;
若所述目标数据类型为int型、long型、short型、浮点型其中的一种,则获取所述目标数据类型对应的精度值与偏移量,计算所述初始属性数据乘以所述精度加上所述偏移量得到目标属性数据;
若所述目标数据类型为布尔型、枚举型其中的一种,则获取预设数据意义转换表,查询所述预设数据意义转换表中与所述初始属性数据对应的所述目标属性数据;
若所述目标数据类型为字符串,则获取ASCII码表,查询所述ASCII码表中与所述初始属性数据的每个数值对应的字符,得到所述目标属性数据;
若所述目标数据类型为数组结构体,则从所述物模型中确定所述数组结构体中每个数组元素对应的子物模型,根据所述子物模型解析所述初始属性数据得到所述目标属性数据;
若所述目标数据类型为时间戳,则所述初始属性数据为所述目标属性数据。
可选地,在所述利用所述物模型读取所述报文得到初始属性数据之前,还包括:
绑定所述目标设备与所述物模型,以使所述目标设备登录时,拉取所述物模型。
可选地,还包括:将所述目标属性数据封装到json中,通过消息队列传递到各个订阅平台。
根据本申请的另一个方面,提供了一种报文解析装置,该装置包括:
配置模块,用于获取目标设备的设备属性表,将所述设备属性表配置到物模型中,其中,所述设备属性表包括设备属性以及与所述设备属性对应的属性参数;
读取模块,用于获取所述目标设备上传的报文,利用所述物模型读取所述报文得到初始属性数据;
解析模块,用于利用所述物模型解析所述初始属性数据得到目标属性数据。
根据本申请的又一个方面,提供了一种存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述报文解析方法。
根据本申请的再一个方面,提供了一种计算机设备,包括存储介质、处理器以及存储在存储介质上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述报文解析方法。
借由上述技术方案,本申请公开了一种报文解析方法、装置、存储介质及计算机设备,可首先获取目标设备的设备属性表,将设备属性表配置到物模型中,其中,设备属性表包括设备属性以及与设备属性对应的属性参数;获取目标设备上传的报文,利用物模型读取报文得到初始属性数据;利用物模型解析初始属性数据得到目标属性数据。通过本申请中的技术方案,利用物模型可以实现配置最新的设备属性表,也就是当设备属性表中新增一个设备属性,就将新增的设备属性与对应的属性参数配置到物模型中,由于只需要修改物模型配置,无需开发代码,因此开发成本小,提高了报文解析效率。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本地申请的不当限定。在附图中:
图1示出了本申请实施例提供的一种报文解析方法的流程示意图;
图2示出了本申请实施例提供的另一种报文解析方法的流程示意图;
图3示出了本申请实施例提供的一种报文解析装置的结构示意图;
图4示出了本申请实施例提供的另一种报文解析装置的结构示意图;
图5示出了本申请实施例提供的数据类型为int型的物模型配置界面示例图;
图6示出了本申请实施例提供的数据类型为枚举型的物模型配置界面示例图;
图7示出了本申请实施例提供的数据类型为数组结构体的物模型配置界面示例图;
图8示出了本申请实施例提供的数据类型为字符串的物模型配置界面示例图;
图9示出了本申请实施例提供的数据类型为时间戳的物模型配置界面示例图;
图10示出了本申请实施例提供的数据类型为占位符的物模型配置界面示例图;
图11示出了本申请实施例提供的物模型的属性管理界面示例图;
图12示出了本申请实施例提供的物模型的服务管理界面示例图;
图13示出了本申请实施例提供的物模型的事件管理界面示例图。
具体实施方式
下文将参考附图并结合实施例来详细说明本申请。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互结合。
针对目前的问题,本申请实施例提供了一种报文解析方法,如图1所示,该方法包括:
101、获取目标设备的设备属性表,将设备属性表配置到物模型中,其中,设备属性表包括设备属性以及与设备属性对应的属性参数。
需要说明的是,目标设备的设备属性表包括了该目标设备的设备属性以及与设备属性对应的属性参数具体值,具体的,如果该目标设备是车辆,那么设备属性可以包括发动机转速、输出功率、整车装备重量、发动机温度等,属性参数用于定义设备属性,其中,属性参数可包括属性名称、标识符、标签、数据类型、数据定义、数据地址(一级地址、二级地址)、顺序、长度(也叫占用长度)等。
其中,设备属性表由厂商动态提供,即厂商提供的是更新后的设备属性表,现有技术中,代码固定开发了更新前的设备属性表,而每更新一次设备属性表,都需要对变化部分(如新增设备属性)书写代码进行定制化开发,导致开发成本高。对于本实施例,作为一种实施方式,利用物模型可以实现配置最新的设备属性表,也就是当设备属性表中新增一个设备属性,就将新增的设备属性与对应的属性参数配置到物模型中,由于只需要修改物模型配置,然后直接利用物模型读取与解析,无需开发代码,因此开发成本小,工作量小。
需要说明的是,物模型是规定客户端与服务端双方数据传输的一个标准,对于本实施例,作为一种实施方式,将设备属性表配置到物模型中,具体的,物模型包括属性管理、服务管理以及事件管理(在具体的应用场景中,例如车辆网领域,属性定义车辆上报的字段;事件定义车辆上报的信息会触发特殊行为,如车辆上报了请求报警所需的字段,那么可以触发报警行为;如车辆上报了请求遥控驾驶所需的字段,那么可以触发遥控驾驶行为;服务实现下行的车辆控制指令与控制反馈字段的定义)。
对于属性管理:在物模型中填入每个设备属性对应的属性参数,如图5示出了数据类型为int型的物模型配置界面示例图,需要说明的是,对于数据类型为long型、short型、浮点型,物模型配置界面只是在数据类型一栏不同,其他与int型相同;如图6示出了数据类型为枚举型的物模型配置界面示例图,需要说明的是,对于数据类型为布尔型,物模型配置界面只是在数据类型一栏不同,其他与枚举型相同;如图7示出了数据类型为数组结构体的物模型配置界面示例图;如图8示出了数据类型为字符串的物模型配置界面示例图;如图9示出了数据类型为时间戳的物模型配置界面示例图;如图10示出了数据类型为占位符的物模型配置界面示例图。每个设备属性对应的属性参数填入完毕后,在图11示出的物模型属性管理界面中显示,在所有设备属性对应的属性参数都填入完毕后,属性管理配置结束。相应的,配置服务管理与事件管理如图12与图13所示,在此不再赘述。
102、获取目标设备上传的报文,利用物模型读取报文得到初始属性数据。
103、利用物模型解析初始属性数据得到目标属性数据。
需要说明的是,每次目标设备上传的报文中包括部分设备属性,将报文所包括的设备属性确定为目标设备属性,对于实施例步骤102,首先,物模型读取到报文中包括的至少一个目标设备属性,进一步的,物模型读取对于每个目标设备属性对应的初始属性数据,最后,对于实施例步骤103,物模型读取将初始属性数据解析为目标属性数据的解析方法,用相应的解析方法解析初始属性数据得到目标属性数据,其中,目标属性数据是目标设备在目标设备属性上的实际值,例如,目标设备是车辆,目标设备属性是发动机温度,如果发动机温度上的实际值是30.3,而报文又无法上传小数,因此,可以上传整数30(初始属性数据),然后预设转换公式,利用预设转换公式与初始属性数据计算得到目标属性数据为30.3。
本申请公开了一种报文解析方法、装置、存储介质及计算机设备,可首先获取目标设备的设备属性表,将设备属性表配置到物模型中,其中,设备属性表包括设备属性以及与设备属性对应的属性参数;获取目标设备上传的报文,利用物模型读取报文得到初始属性数据;利用物模型解析初始属性数据得到目标属性数据。通过本申请中的技术方案,利用物模型可以实现配置最新的设备属性表,也就是当设备属性表中新增一个设备属性,就将新增的设备属性与对应的属性参数配置到物模型中,由于只需要修改物模型配置,无需开发代码,因此开发成本小,提高了报文解析效率。
进一步的,作为上述实施例具体实施方式的细化和扩展,为了完整说明本实施例中的具体实施过程,提供了另一种报文解析方法,如图2所示,该方法包括:
201、获取目标设备的设备属性表,将设备属性表配置到物模型中,其中,设备属性表包括设备属性以及与设备属性对应的属性参数。
对于本实施例,具体实施过程可参照实施例步骤101中的相关描述,在此不再赘述。
202、获取目标设备上传的报文,读取报文中的目标数据地址,在物模型中匹配与目标数据地址对应的至少一个目标设备属性,获取每个目标设备属性的目标顺序与目标占用长度。
203、根据目标顺序以及目标占用长度依次读取报文中的与每个目标设备属性对应的初始属性数据。
在现有技术中,设备软件在升级的过程中由于升级过程的时间差,会出现部分设备软件使用更新后的设备属性表,部分使用更新前的设备属性表的情况,因此对于实施例步骤202,在利用物模型读取报文得到初始属性数据之前,还包括:绑定目标设备与物模型,以使目标设备登录时,拉取物模型。由此实现了针对每台设备都有动态更新后的设备属性表。
对于实施例步骤202,作为一种实施方式,属性参数包括数据地址、顺序、占用长度。报文是一串字符串,且预先设定了在报文预设位置处的字符是目标数据地址,其中,每个报文只对应唯一一个目标数据地址,然后在物模型中匹配:有哪些设备属性对应着这个目标数据地址,将这个目标数据地址对应的目标设备属性确定下来。读取报文中的目标数据地址目的在于通过目标数据地址可以确定报文中所包括的目标设备属性,这些目标设备属性之间按照物模型中配置好的目标顺序与目标占用长度在报文中进行排列。
例如,在物模型中匹配到目标数据地址对应了目标设备属性1、目标设备属性2以及目标设备属性3,在物模型中已经预先配置好了目标设备属性1,在所有目标设备属性中的目标顺序是1,目标占用长度是3字节,对于目标设备属性2的目标顺序是2,目标占用长度是4字节,对于目标设备属性3的目标顺序是3,目标占用长度是5字节,那么对于实施例步骤203,读取报文中的与每个目标设备属性对应的初始属性数据:读取前3字节,是目标设备属性1对应的初始属性数据,读取中间4字节,是目标设备属性2对应的初始属性数据,读取后5字节,是目标设备属性3对应的初始属性数据。
优选地,属性参数还包括:解析单位,其中,解析单位包括位与字节;根据目标顺序以及目标占用长度依次读取报文中的与每个目标设备属性对应的初始属性数据,还包括:获取每个目标设备属性对应的目标解析单位;若目标解析单位为位(目标设备属性所占长度单位为位),则根据目标顺序以及目标占用长度依次按位为一个读取粒度读取报文中的与每个目标设备属性对应的初始属性数据;若目标解析单位为字节(目标设备属性所占长度单位为字节),则根据目标顺序以及目标占用长度依次按字节为一个读取粒度读取报文中的与每个目标设备属性对应的初始属性数据。
其中,每个目标设备属性对应的目标解析单位在物模型中已经配置好,可以在物模型中获取到,通过配置了解析单位,可以实现使用不同的粒度读取报文。
204、利用物模型解析初始属性数据得到目标属性数据。
属性参数还包括:数据类型;对于本实施例,作为一种实施方式,在利用物模型解析初始属性数据得到目标属性数据之前,还包括:确定目标设备属性的初始属性数据范围;判断初始属性数据是否在初始属性数据范围内;若是,则利用物模型解析初始属性数据得到目标属性数据;若否,则删除初始属性数据。
其中,物模型中预先配置了每个设备属性对应的属性数据范围,之所以在利用物模型解析初始属性数据得到目标属性数据之前,判断初始属性数据是否在初始属性数据范围内,是为了过滤掉无效数据,对于无效数据,无需利用物模型解析初始属性数据得到目标属性数据。
具体的,确定目标设备属性的初始属性数据范围,包括:确定与目标设备属性对应的目标数据类型;若目标数据类型为int型、long型、short型、浮点型其中的一种,则从物模型中匹配目标数据类型对应的初始属性数据范围;若目标数据类型为布尔型、枚举型其中的一种,则将预设数据意义转换表作为初始属性数据范围;若目标数据类型为数组结构体,则从物模型中确定数组结构体中每个数组元素对应的子物模型,确定子物模型对应的子数据类型,根据子数据类型确定每个数组元素对应的数据范围,将所有数据范围作为初始属性数据范围。
其中,预设数据意义转换表是预先配置的,表上的每个数据对应一个数据意义,如果初始属性数据在这个表内,那么说明可以利用物模型解析初始属性数据得到目标属性数据,如果初始属性数据不在这个表内,那么删除初始属性数据。
其中,数组结构体指的是长度不固定的数据类型,之所以长度不固定,是因为数组的个数不固定,例如,车辆的故障信息对应的数组元素为故障码以及故障等级,车辆上传报文时可能上传两个数组如:数组1:故障码1以及故障等级1,数组2:故障码2以及故障等级2,那么数组长度为(故障码1的长度+故障等级1的长度)*2,也可能上传三个数组如:数组1:故障码1以及故障等级1,数组2:故障码2以及故障等级2,数组3:故障码3以及故障等级3,那么数组长度为(故障码1的长度+故障等级1的长度)*3。
需要说明的是,虽然数组长度不固定,物模型无法直接解析数组结构体,但是数组中所包括每个数组元素的长度固定,因此,为每个数组元素配置一个子物模型,每个子物模型对应一个子数据类型,如果子数据类型是int型、long型、short型、浮点型其中的一种,则子物模型中已经配置了对应的数组元素的数据范围,如果子数据类型是布尔型、枚举型其中的一种,则预设数据意义转换表作为对应的数组元素的数据范围,相应的,对于数组结构体的初始属性数据范围包括每个数组元素对应的数据范围,例如,对于故障码有一个故障码数据范围,对于故障等级有一个故障等级数据范围,只有报文中的故障码在故障码数据范围,且报文中的故障等级在故障等级数据范围内,才说明初始属性数据(报文中的故障码以及报文中的故障等级)在初始属性数据范围内。
利用物模型解析初始属性数据得到目标属性数据,包括:确定与目标设备属性对应的目标数据类型;若目标数据类型为int型、long型、short型、浮点型其中的一种,则获取目标数据类型对应的精度值与偏移量,计算初始属性数据乘以精度加上偏移量得到目标属性数据;若目标数据类型为布尔型、枚举型其中的一种,则获取预设数据意义转换表,查询预设数据意义转换表中与初始属性数据对应的目标属性数据;若目标数据类型为字符串,则获取ASCII码表,查询ASCII码表中与初始属性数据的每个数值对应的字符,得到目标属性数据;若目标数据类型为数组结构体,则从物模型中确定数组结构体中每个数组元素对应的子物模型,根据子物模型解析初始属性数据得到目标属性数据;若目标数据类型为时间戳,则初始属性数据为目标属性数据。
其中,对于目标数据类型为int型、long型、short型、浮点型其中一种时,设备终端通过报文,只能将正整数型的数据传输至云平台,因此,设置对应的精度与偏移量可以实现设备终端传输小数或者负数等。例如,对于发动机转速实际值为100.6(目标属性数据),那么通过报文传输100(初始属性数据),设置精度为1,偏移量为0.6,可以准确获得发动机转速实际值(目标属性数据)。
其中,对于目标数据类型为布尔型、枚举型其中的一种,获取预设数据意义转换表,表上的每个数据对应一个数据意义,初始属性数据就是表上的某一个数据,查询其在表上对应的数据意义,即获得了目标属性数据,例如初始属性数据为1,在表上对应的数据意义是“开”,那么目标属性数据即为“开”。
其中,对于目标数据类型为数组结构体,预先在物模型中配置了数组结构体对应的多个数组元素,每个数组元素都有对应的子物模型进行解析,解析方式与物模型解析初始属性数据得到目标属性数据相同,例如,根据报文中的目标数据地址获取到目标设备属性为故障信息,在物模型中确定目标设备属性的目标数据类型为数组结构体,在物模型中确定了故障信息所包括的数组元素是故障码以及故障等级,对于故障码使用故障码对应的子物模型进行解析,对于故障等级使用故障等级对应的子物模型进行解析,具体的,子物模型中配置了子属性参数,如子数据类型、子顺序、子长度等,如果子数据类型为int型、long型、short型、浮点型其中一种时,子属性参数还包括子精度与子偏移量,以故障码以及故障等级的子数据类型均为int型、long型、short型、浮点型其中一种为例,由子顺序可知故障码以及故障等级的排列顺序,由子长度可知故障码以及故障等级占用的长度,分别读取后,乘以对应的子精度加上对应的子偏移量,可以得到分别对应的子目标属性数据,这两个子目标属性数据都计算得到后,即得到了目标属性数据。
205、将目标属性数据封装到json中,通过消息队列传递到各个订阅平台。
其中,消息队列可以是Kafka,需要说明的是,封装到json中的除了目标属性数据,还可包括属性名称、标识符等,在此不做限定。
本申请公开了一种报文解析方法、装置、存储介质及计算机设备,可首先获取目标设备的设备属性表,将设备属性表配置到物模型中,其中,设备属性表包括设备属性以及与设备属性对应的属性参数;获取目标设备上传的报文,利用物模型读取报文得到初始属性数据;利用物模型解析初始属性数据得到目标属性数据。通过本申请中的技术方案,利用物模型可以实现配置最新的设备属性表,也就是当设备属性表中新增一个设备属性,就将新增的设备属性与对应的属性参数配置到物模型中,由于只需要修改物模型配置,无需开发代码,因此开发成本小,提高了报文解析效率。
进一步的,作为图1和图2所示方法的具体实现,本申请实施例提供了一种报文的解析装置,如图3所示,该装置包括:配置模块31、读取模块32、解析模块33;
配置模块31,用于获取目标设备的设备属性表,将所述设备属性表配置到物模型中,其中,所述设备属性表包括设备属性以及与所述设备属性对应的属性参数;
读取模块32,用于获取所述目标设备上传的报文,利用所述物模型读取所述报文得到初始属性数据;
解析模块33,用于利用所述物模型解析所述初始属性数据得到目标属性数据。
在具体的应用场景中,所述属性参数包括数据地址、顺序、占用长度,为了利用所述物模型读取所述报文得到初始属性数据,如图4所示,读取模块32,具体可包括:第一读取单元321、第二读取单元322;
第一读取单元321,具体可用于读取所述报文中的目标数据地址,在所述物模型中匹配与所述目标数据地址对应的至少一个目标设备属性,获取每个所述目标设备属性的目标顺序与目标占用长度;
第二读取单元322,具体可用于根据所述目标顺序以及所述目标占用长度依次读取所述报文中的与每个所述目标设备属性对应的初始属性数据。
相应的,所述属性参数还包括:解析单位,其中,所述解析单位包括位与字节;为了根据所述目标顺序以及所述目标占用长度依次读取所述报文中的与每个所述目标设备属性对应的初始属性数据,第二读取单元322,具体还可用于:获取每个所述目标设备属性对应的目标解析单位;若所述目标解析单位为位,则根据所述目标顺序以及所述目标占用长度依次按位为一个读取粒度读取所述报文中的与每个所述目标设备属性对应的初始属性数据;若所述目标解析单位为字节,则根据所述目标顺序以及所述目标占用长度依次按字节为一个读取粒度读取所述报文中的与每个所述目标设备属性对应的初始属性数据。
在具体的应用场景中,如图4所示,一种报文解析装置,该装置还包括:判断模块34,具体可用于确定所述目标设备属性的初始属性数据范围;判断所述初始属性数据是否在所述初始属性数据范围内;若是,则利用所述物模型解析所述初始属性数据得到目标属性数据;若否,则删除所述初始属性数据。
在具体的应用场景中,所述属性参数还包括:数据类型;为了利用所述物模型解析所述初始属性数据得到目标属性数据,解析模块33,具体可用于确定与所述目标设备属性对应的目标数据类型;若所述目标数据类型为int型、long型、short型、浮点型其中的一种,则获取所述目标数据类型对应的精度值与偏移量,计算所述初始属性数据乘以所述精度加上所述偏移量得到目标属性数据;若所述目标数据类型为布尔型、枚举型其中的一种,则获取预设数据意义转换表,查询所述预设数据意义转换表中与所述初始属性数据对应的所述目标属性数据;若所述目标数据类型为字符串,则获取ASCII码表,查询所述ASCII码表中与所述初始属性数据的每个数值对应的字符,得到所述目标属性数据;若所述目标数据类型为数组结构体,则从所述物模型中确定所述数组结构体中每个数组元素对应的子物模型,根据所述子物模型解析所述初始属性数据得到所述目标属性数据;若所述目标数据类型为时间戳,则所述初始属性数据为所述目标属性数据。
在具体的应用场景中,如图4所示,在所述利用所述物模型读取所述报文得到初始属性数据之前,一种报文解析装置,该装置还包括:拉取模块30,具体可用于绑定所述目标设备与所述物模型,以使所述目标设备登录时,拉取所述物模型。
在具体的应用场景中,如图4所示,一种报文解析装置,该装置还包括:传递模块35,具体可用于将所述目标属性数据封装到json中,通过消息队列传递到各个订阅平台。
需要说明的是,本实施例提供的一种报文解析装置所涉及各功能单元的其他相应描述,可以参考图1至图2的对应描述,在此不再赘述。
基于上述如图1至图2所示方法,相应的,本实施例还提供了一种存储介质,存储介质具体可为易失性或非易失性,其上存储有计算机可读指令,该可读指令被处理器执行时实现上述如图1至图2所示的报文解析方法。
基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者通讯设备等)执行本申请各个实施场景的方法。
基于上述如图1至图2所示的方法和图3、图4所示的虚拟装置实施例,为了实现上述目的,本实施例还提供了一种计算机设备,该计算机设备包括存储介质和处理器;存储介质,用于存储计算机程序;处理器,用于执行计算机程序以实现上述如图1至图2所示的报文解析方法。
可选的,该计算机设备还可以包括用户接口、通讯接口、摄像头、射频(RadioFrequency,RF)电路,传感器、音频电路、WI-FI模块等等。用户接口可以包括显示屏(Display)、输入单元比如键盘(Keyboard)等,可选用户接口还可以包括USB接口、读卡器接口等。通讯接口可选的可以包括标准的有线接口、无线接口(如WI-FI接口)等。
本领域技术人员可以理解,本实施例提供的一种计算机设备结构并不构成对该实体设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。
存储介质中还可以包括操作系统、通讯通信模块。操作系统是管理上述计算机设备硬件和软件资源的程序,支持信息处理程序以及其它软件和/或程序的运行。通讯通信模块用于实现存储介质内部各组件之间的通信,以及与信息处理实体设备中其它硬件和软件之间通信。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以借助软件加必要的通用硬件平台的方式来实现,也可以通过硬件实现。
通过应用本申请的技术方案,与目前现有技术相比,本申请公开了一种报文解析方法、装置、存储介质及计算机设备,可首先获取目标设备的设备属性表,将设备属性表配置到物模型中,其中,设备属性表包括设备属性以及与设备属性对应的属性参数;获取目标设备上传的报文,利用物模型读取报文得到初始属性数据;利用物模型解析初始属性数据得到目标属性数据。通过本申请中的技术方案,利用物模型可以实现配置最新的设备属性表,也就是当设备属性表中新增一个设备属性,就将新增的设备属性与对应的属性参数配置到物模型中,由于只需要修改物模型配置,无需开发代码,因此开发成本小,提高了报文解析效率。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本申请序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。
Claims (10)
1.一种报文解析方法,其特征在于,包括:
获取目标设备的设备属性表,将所述设备属性表配置到物模型中,其中,所述设备属性表包括设备属性以及与所述设备属性对应的属性参数;
获取所述目标设备上传的报文,利用所述物模型读取所述报文得到初始属性数据;
利用所述物模型解析所述初始属性数据得到目标属性数据。
2.根据权利要求1所述的方法,其特征在于,所述属性参数包括数据地址、顺序、占用长度;
所述利用所述物模型读取所述报文得到初始属性数据,包括:
读取所述报文中的目标数据地址,在所述物模型中匹配与所述目标数据地址对应的至少一个目标设备属性,获取每个所述目标设备属性的目标顺序与目标占用长度;
根据所述目标顺序以及所述目标占用长度依次读取所述报文中的与每个所述目标设备属性对应的初始属性数据。
3.根据权利要求2所述的方法,其特征在于,所述属性参数还包括:解析单位,其中,所述解析单位包括位与字节;
所述根据所述目标顺序以及所述目标占用长度依次读取所述报文中的与每个所述目标设备属性对应的初始属性数据,还包括:
获取每个所述目标设备属性对应的目标解析单位;
若所述目标解析单位为位,则根据所述目标顺序以及所述目标占用长度依次按位为一个读取粒度读取所述报文中的与每个所述目标设备属性对应的初始属性数据;
若所述目标解析单位为字节,则根据所述目标顺序以及所述目标占用长度依次按字节为一个读取粒度读取所述报文中的与每个所述目标设备属性对应的初始属性数据。
4.根据权利要求2所述的方法,其特征在于,在利用所述物模型解析所述初始属性数据得到目标属性数据之前,还包括:
确定所述目标设备属性的初始属性数据范围;
判断所述初始属性数据是否在所述初始属性数据范围内;
若是,则利用所述物模型解析所述初始属性数据得到目标属性数据;
若否,则删除所述初始属性数据。
5.根据权利要求2或4所述的方法,其特征在于,所述属性参数还包括:数据类型;
所述利用所述物模型解析所述初始属性数据得到目标属性数据,包括:
确定与所述目标设备属性对应的目标数据类型;
若所述目标数据类型为int型、long型、short型、浮点型其中的一种,则获取所述目标数据类型对应的精度值与偏移量,计算所述初始属性数据乘以所述精度加上所述偏移量得到目标属性数据;
若所述目标数据类型为布尔型、枚举型其中的一种,则获取预设数据意义转换表,查询所述预设数据意义转换表中与所述初始属性数据对应的所述目标属性数据;
若所述目标数据类型为字符串,则获取ASCII码表,查询所述ASCII码表中与所述初始属性数据的每个数值对应的字符,得到所述目标属性数据;
若所述目标数据类型为数组结构体,则从所述物模型中确定所述数组结构体中每个数组元素对应的子物模型,根据所述子物模型解析所述初始属性数据得到所述目标属性数据;
若所述目标数据类型为时间戳,则所述初始属性数据为所述目标属性数据。
6.根据权利要求1所述的方法,其特征在于,在所述利用所述物模型读取所述报文得到初始属性数据之前,还包括:
绑定所述目标设备与所述物模型,以使所述目标设备登录时,拉取所述物模型。
7.根据权利要求1所述的方法,其特征在于,还包括:将所述目标属性数据封装到json中,通过消息队列传递到各个订阅平台。
8.一种报文解析装置,其特征在于,包括:
配置模块,用于获取目标设备的设备属性表,将所述设备属性表配置到物模型中,其中,所述设备属性表包括设备属性以及与所述设备属性对应的属性参数;
读取模块,用于获取所述目标设备上传的报文,利用所述物模型读取所述报文得到初始属性数据;
解析模块,用于利用所述物模型解析所述初始属性数据得到目标属性数据。
9.一种存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1至7中任一项所述的报文解析方法。
10.一种计算机设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至7中任一项所述的报文解析方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211647207.9A CN116155745A (zh) | 2022-12-21 | 2022-12-21 | 报文解析方法、装置、存储介质及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211647207.9A CN116155745A (zh) | 2022-12-21 | 2022-12-21 | 报文解析方法、装置、存储介质及计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116155745A true CN116155745A (zh) | 2023-05-23 |
Family
ID=86361074
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211647207.9A Pending CN116155745A (zh) | 2022-12-21 | 2022-12-21 | 报文解析方法、装置、存储介质及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116155745A (zh) |
-
2022
- 2022-12-21 CN CN202211647207.9A patent/CN116155745A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109768970B (zh) | 一种基于可配置的通用协议生成方法 | |
CN111683066B (zh) | 异构系统集成方法、装置、计算机设备和存储介质 | |
CN110113196B (zh) | 一种协议配置方法、装置、设备及介质 | |
CN109388417B (zh) | 一种通信协议的更新方法、系统及终端设备 | |
CN109726108B (zh) | 基于模拟数据的前端代码测试方法、装置、系统和介质 | |
CN113010378B (zh) | 微服务模块的日志处理方法及装置、存储介质、电子装置 | |
CN110297944B (zh) | 分布式xml数据处理方法及系统 | |
CN112732572A (zh) | 服务的测试方法、装置及系统、存储介质、电子装置 | |
CN110096380B (zh) | Android内部通讯方法、系统、装置及存储介质 | |
CN111369237B (zh) | 一种数据处理方法、装置及计算机存储介质 | |
CN112367234B (zh) | 模拟数据生成方法、终端设备及计算机可读存储介质 | |
CN109032693A (zh) | 一种加载展示信息方法、装置、电子设备及可读存储介质 | |
JP6951380B2 (ja) | ゲートウェイ装置、通信方法及びプログラム | |
CN116155745A (zh) | 报文解析方法、装置、存储介质及计算机设备 | |
US10055516B1 (en) | Testing open mobile alliance server payload on an open mobile alliance client simulator | |
CN116192626A (zh) | 设备访问方法及装置、计算机可读存储介质、电子设备 | |
CN113204683B (zh) | 信息重构方法和装置、存储介质及电子设备 | |
CN115967604A (zh) | 报文传输方法、装置、电子设备及计算机可读存储介质 | |
CN114637531A (zh) | 应用程序接口动态生成方法及装置 | |
CN114466387A (zh) | 基站的配置文件的更新方法、装置、存储介质和电子装置 | |
CN113010377A (zh) | 一种作业的运行日志的采集方法及装置 | |
CN111078477A (zh) | 接口测试的方法、装置、存储介质和电子设备 | |
CN114912048B (zh) | 页面投放的方法、装置、存储介质及电子设备 | |
CN110647546A (zh) | 第三方规则引擎生成方法及装置 | |
CN116339703B (zh) | 总线接口代码生成方法、装置、电子设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |