CN110012031B - 数据报文通用自动解析方法和存储方法 - Google Patents
数据报文通用自动解析方法和存储方法 Download PDFInfo
- Publication number
- CN110012031B CN110012031B CN201910341929.3A CN201910341929A CN110012031B CN 110012031 B CN110012031 B CN 110012031B CN 201910341929 A CN201910341929 A CN 201910341929A CN 110012031 B CN110012031 B CN 110012031B
- Authority
- CN
- China
- Prior art keywords
- data
- protocol
- message
- format
- content
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000004458 analytical method Methods 0.000 claims abstract description 28
- 238000012795 verification Methods 0.000 claims description 30
- 238000006243 chemical reaction Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 10
- 238000013500 data storage Methods 0.000 description 8
- 238000010276 construction Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000004806 packaging method and process Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 235000017166 Bambusa arundinacea Nutrition 0.000 description 1
- 235000017491 Bambusa tulda Nutrition 0.000 description 1
- 241001330002 Bambuseae Species 0.000 description 1
- 235000015334 Phyllostachys viridis Nutrition 0.000 description 1
- 239000011425 bamboo Substances 0.000 description 1
- 208000024234 coloboma, osteopetrosis, microphthalmia, macrocephaly, albinism, and deafness Diseases 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000008571 general function Effects 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- PUIYMUZLKQOUOZ-UHFFFAOYSA-N isoproturon Chemical compound CC(C)C1=CC=C(NC(=O)N(C)C)C=C1 PUIYMUZLKQOUOZ-UHFFFAOYSA-N 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- 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/03—Protocol definition or specification
-
- 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 Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种数据报文通用自动解析方法和存储方法。解析方法包括:在LDAP中,预配置若干种协议格式;存储所配置的协议格式;根据需要解析的报文所属的协议类型,匹配出对应的协议格式;基于所匹配出的协议格式对所述报文进行完整性判断,在判断通过后,利用所匹配出的协议格式,对所述报文的数据内容进行解析;依据所述报文对应的协议格式,对所解析出的数据进行格式转换。存储方法包括:在LDAP中预定义设备数据类型的数据格式内容,根据设备标识,在存储对应数据表时,存储数据入数据表,否则,构建数据表,存入数据。本发明利用LDAP实现协议解析的自动匹配,通过简单配置和操作,实现对多类协议的通用解析。
Description
技术领域
本发明涉及传感器通信协议解析领域,尤其是一种基于LDAP的自定义协议的报文自动解析和设备数据存储的通用方法。
背景技术
近年来,随着传感器的广泛使用,各种物联网、智慧城市、智慧海洋等基于传感器的应用系统如雨后春笋,但是随之而来的问题就是系统需要接入大量的传感器数据进行数据解析及传感器设备数据的自动储存问题。协议的解析大都采用针对每一类数据协议制定相应的协议解析程序的方法,不仅费时费力,而且有大量重复性工作。目前也有一些基于计算机的通用协议解析的软件,但是解析不仅方法复杂而且有些方法还对系统及硬件有限制。不仅如此,不同的传感器或者同种传感器不同厂家都有各自特定的数据格式,在有大量的使用传感器或者更换传感器厂家的需求时,就面临传感器设备数据格式的增加或者修改问题。不仅如此,对于各种各样的设备数据存储,传统数据库存储方法是修改程序或者相应的配置文件,不仅繁琐费时费力,不利于统一管理,而且需要专业人员进行操作,无法交给其他非专业人士进行操作。因此,提出一种配置简单、通用性强的数据报文自解析方法和存储方法很有必要。
发明内容
本发明的发明目的在于:针对上述存在的问题,提供一种基于配置文件的自定义协议的自动解析和设备数据存储的通用方法。解决对应用多类型数据协议的传感器所采集的报文进行自动解析和存储的问题。
将需要解析的数据协议格式按照一定规则写入LDAP(Lightweight DirectoryAccess Protocol,轻量目录访问协议)中,解析时自动匹配LDAP中的对应数据协议格式,形成自动解析的一种通用功能,同时还可以将想要存储的数据内存自动匹配LDAP中的数据格式,实现自动生成数据表并存储设备数据的功能。
本发明采用的技术方案如下:
一种数据报文通用自动解析方法,包括以下步骤
S1:在LDAP中,预配置若干种协议格式;
S2:存储所配置的协议格式;
S3:根据需要解析的报文所属的协议类型,匹配出对应的协议格式;
S4:基于所匹配出的协议格式对所述报文进行完整性判断,在判断通过后,执行后续步骤;
S5:利用所匹配出的协议格式,对所述报文的数据内容进行解析;
S6:依据所述报文对应的协议格式,对所解析出的数据进行格式转换。
本发明采用LDAP的方式实现协议格式配置,LDAP不仅可以方便配置协议数据的复制、删除和修改操作,而且具有主从同步的功能,在主节点修改内容后,从节点会自动同步相应的内容。采用LDAP进行数据协议的定义、存储配置,用户只需要在LDAP中的配置匹配到需要解析的协议数据项就可以读取其协议内容,和数据的格式。调用本方法直接输入协议名称,即可按照读取的协议内容实现对报文的自动解析,操作简单、便捷,通用性强。
进一步的,上述S4-S5之间,还包括:
S4-5:对完整数据进行数据正确性验证的步骤:利用所匹配出的协议格式对报文进行数据正确性判断;在判断通过后,执行后续步骤。
本发明支持异或验证、和验证等常用校验类型的设置方式,进一步增加了方法的通用性。设置正确性校验环节,可以确保方法对报文解析的正确性,防止解析到错误的报文。
进一步的,上述S4-5中数据正确性判断流程为:若协议格式中尾部内容有校验方式,则以该校验方式对报文进行数据正确性判断,若检验成功,则执行下一步骤,否则,重新执行S4;若不存在校验方式,则跳过该步骤。
基于协议中校验方式进行数据正确性校验,对于报文的解析工作而言,无需额外配置校验方式,通用性更强。
进一步的,上述S2具体为:获取所配置的所有数据协议,得到各协议的数据协议内容信息,并存入对应的协议结构体,形成协议数据列表。
以结构体方式将所配置的协议信息进行整合,便于协议格式的同步,同时可以将各类协议进行有效区分。
进一步的,上述S1中所配置的协议格式包括分别对字节编码类型和字符串编码类型所定义的协议格式。
定义此两种类型的协议格式,可以兼容几乎所有报文编码格式,进而确保解析针对性的同时,提高方法的通用性。
进一步的,上述S4中的完整性判断为:基于所匹配出的协议格式,解析出所述报文的协议头部报文和尾部内容,再利用协议头部报文和/或尾部内容对报文进行完整性验证。
利用报文协议头部和尾部信息,可以快速定位到数据内容,以简单、可靠的方式,快速读取完整数据。
进一步的,上述利用协议头部报文和/或尾部内容对报文进行完整性验证具体为:
对于协议类型为字节编码格式,若协议格式中协议头部报文中包含数据长度,则获取相应长度的数据作为完整数据,若无数据长度,则以尾部标识作为完整数据截止点;对于协议类型为字符串编码格式,则以协议头部标识和尾部标识间的数据作为完整数据。
针对不同类型报文,配置有相应的完整性验证方式,提高验证的准确性,并确保对各类型协议的兼容性。
本发明还公开了一种报文数据通用存储方法,包括以下步骤:
A.在LDAP中预定义设备数据类型的数据格式内容,该数据格式内容与所配置的协议格式相对应;
B.根据所需存储数据的设备标识,判断是否存在对应于该设备标识的数据表,若存在,则执行D,否则,执行C;
C.基于所要存储的设备数据类型,在LDAP中获取对应的数据格式内容,并基于所获取的数据格式内容,构建数据表;
D.将利用上述的解析方法所解析的设备的报文数据存入数据表。
通过上述方式,在获取所要存储的数据后,即可完成数据表的自动构建和数据的自动存储。
进一步的,上述步骤C包括:
C1:根据输入的设备标识所对应的设备的数据类型,获取LDAP中对应的数据格式内容;
C2:解析所获取的数据格式内容,得到每个数据项所包含的信息,根据每个数据项所包含的信息,形成数据项信息数组;
C3:根据数据项信息数组,构建数据表。
通过自动识别设备的数据类型,即可完成对应数据项的表单构建,保证数据项信息的匹配。对于用户而言,操作及其简便,且在数据类型存在变化时,仅需对协议中的格式进行修改,即可完成后续数据存储中数据表的自动更新。
进一步的,上述数据表包括实时表和历史表,实时表仅存储设备的最新数据,历史表存储设备的所有历史数据。
同时构建实时表和历史表,可以方便用户同时掌握实时数据和统计数据,且便于对存储的数据进行对比检错。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
1、本发明采用LDAP的方式实现协议格式配置,LDAP不仅可以方便配置协议数据的复制、删除和修改操作,而且具有主从同步的功能,在主节点修改内容后,从节点会自动同步相应的内容。该优点不仅方便非专业人员进行简单的配置修改,而且具有对配置数据进行主从备份和组网能力。本发明的自动解析方法对于不同类型传感器报文均可实现自动解析,具备良好的通用性。
2、本发明采用LDAP进行数据协议的定义、存储配置,用户只需要在LDAP中的配置参数匹配到需要解析的协议数据项就可以读取其协议内容和数据的格式。调用本方法直接输入协议名称,即可按照读取的协议内容实现数据的自动解析。配置简单,操作简便。
3、本发明支持常用的校验方式,无需额外配置校验算法。
4、本发明支持协议首部中最对包含报文头、命令号和数据长度项的数据。且可自动识别系统大小端,可支持编码方式不同的系统间的数据通信。
5、本发明的数据存储方法在获取到需存储数据(标识、类型和内容)时,即可完成数据表的自动构建和数据的自动存储。
6、本发明支持历史表和实时表的自动更新或存储,存储范围可以灵活配置。并且具备表单损坏自恢复功能,在表单损坏而无法正常存储数据时,删除实时表,备份历史表,在下一条数据来临时自动重建数据包,进而自动恢复存储流程。
附图说明
本发明将通过例子并参照附图的方式说明,其中:
图1是报文解析的一个实施例。
图2是对设备采集数据存储的实施例。
具体实施方式
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
本说明书(包括任何附加权利要求、摘要)中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
数据报文通用自动解析方法,解析步骤包括:
S1:在LDAP中,预配置若干种协议格式;
S2:获取所配置的所有数据协议,得到数据协议内容信息,并存入协议结构体,形成协议数据列表;
S3:根据需要解析的报文所属的协议类型,在协议数据列表中匹配出对应的协议结构体;
S4:利用所匹配出的协议结构体对报文进行数据完整性判断;在判断通过后,执行后续步骤;
S5:根据所匹配出的协议结构体的协议格式,对报文的数据内容进行解析;
S6:依据报文对应的协议格式,对所解析出的数据进行格式转换。
实施例一
数据报文通用自动解析方法,包括以下步骤:
S1:在LDAP中,预配置若干种协议格式。
所配置的协议格式,为对各中协议字段的定义。包括协议类型、协议头部、数据项内容、协议尾部等。
S2:获取所配置的所有数据协议,得到各协议的数据协议内容信息,并存入对应的协议结构体,形成协议数据列表。
数据协议内容信息即为对每一种协议所配置的字段信息,将各字段信息统一整理并定义格式,即得到完整的协议结构体。
S3:从缓存的数据中提取需要解析的报文,根据该报文所属的协议类型,在协议数据列表中匹配出对应的协议结构体。
缓存空间所缓存的数据为各类传感器所采集的数据;各类传感器所配置的协议可能有所差异,则在解析传感器所采集的数据时,需要采用对应的协议进行解析。此处可以通过在所配置的数据协议中,匹配出相应的协议结构体来对报文进行解析。
S4:利用所匹配出的协议结构体对报文进行数据完整性判断;在判断通过后,执行后续步骤。
利用协议结构体,解析出报文的协议头部报文和尾部内容,再利用协议头部报文和/或尾部内容对报文进行完整性验证。对于不同协议类型的报文,所采用的完整性验证方式有所不同。对于协议类型为字节编码格式,若协议格式中协议头部报文中包含数据长度,则获取相应长度的数据作为完整数据,若无数据长度,则以尾部标识作为完整数据截止点。对于协议类型为字符串编码格式,则以协议头部标识和尾部标识间的数据作为完整数据。若再次获取到协议头部文件时,则清除缓存数据,再次执行S4。
S4-5:利用所匹配出的协议结构体对报文进行数据正确性判断;在判断通过后,执行后续步骤,否则,清除缓存数据,再次执行S4。
若协议格式中尾部内容有校验方式,则以该校验方式对报文进行数据正确性判断,若检验成功,则执行下一步骤,否则,清除缓存数据,再次执行S4;若不存在校验方式,则跳过该步骤。
S5:根据所匹配出的协议结构体的协议格式,对报文的数据内容进行解析。
在配置的协议格式中的数据项包含数据项名称、类型以及数据长度,例如可以得到AIS传感器设备数据中的距离数据项类型及其长度分别为float、4字节;经度数据项类型及其长度分别为float、4字节;纬度据项类型及其长度分别为float、4字节等。
对于协议类型为字节编码类型,按照字节长度及类型对数据内容逐一进行解析,数据会自动根据协议头部报文中的大小端编码方式进行数据大小端转换。对于协议类型为字符串编码格式,数据会自动根据协议头部报文数据分隔符的类型进行数据分离,并按照数据字节长度及类型将字符串内容转化成对应数据。
S6:依据报文对应的协议格式,对所解析出的数据进行格式转换。
对于解析出的数据,根据协议格式所定义的数据类型和长度进行数据打包,用户可以通过数据类型强制转换的方式将数据转换成结构体的形式。
报文数据通用存储方法,该存储方法基于上述报文解析方法;存储方法包括以下步骤:
A.在LDAP中预定义设备数据类型的数据格式内容,具体包括该数据类型中每个数据项的名称、数据项类型以及数据长度;
B.根据所需存储数据的设备标识,判断是否存在对应于该设备标识的数据表,若存在,则执行D,否则,执行C;
C.基于所要存储的设备数据类型,在LDAP中获取对应的数据格式内容,并基于所获取的数据格式内容,构建数据表;
D.将所解析的设备的报文数据存入数据表。
实施例二
报文数据通用存储方法,包括以下步骤:
A.用户在LDAP中,按照约定的格式增加或修改设备类型数据的数据格式内容,具体包括每个数据项名称、类型以及数据长度,该数据格式内容与所配置的协议格式相对应;
B.根据输入的设备标识(如设备ID),判断是否存在对应该设备的数据表,若存在,择执行D,否则,执行C;
C.构建数据表:
C1:根据输入的设备标识所对应的设备的数据类型,获取LDAP中对应的数据格式内容;
C2:解析所获取的数据格式内容,得到每个数据项所包含的信息,形成数据项信息数组;数据项所包含的信息有数据项名称、类型以及数据长度,例如解析得到AIS传感器设备数据中的距离数据项的名称、类型及其长度分别为distance、float、4字节;经度数据项的名称、类型及其长度分别为lat、float、4字节;纬度数据项的名称、类型及其长度分别为lon、float、4字节等;
C3:根据数据项信息数组,构建数据表。
在一个实施例中,数据表包括实时表和历史表,实时表仅存储设备的最新数据,历史表存储设备的所有历史数据。
D.将利用上述解析方法所解析出的报文数据(的每一项数据)对应存入数据表中。
实施例三
本实施例具体公开了上述将解析数据存入数据表的过程:
D1:在实时表中检索是否存在所要存入设备的数据项,若存在,则将实时表中对应于该设备的每一个数据项更新为最新数据(计划存入的数据);若不存在,则直接将计划存入的数据插入实时表中。
D2:在历史表中,匹配设备的数据项,将待存入数据对应插入到所匹配到的数据项。
在一个实施例中,在向数据表存入数据过程中,若写入(更新或插入)数据失败,则执行错误处理的步骤。如删除实时表,历史表备份后重新执行B。
实施例四
本实施例公开了一种对设备所采集的数据报文进行自动解析和存储方法,包括以下步骤:
S1:在LDAP中,预定义字节编码和字符串编码两种类型的协议格式,还定义各设备的数据类型的数据格式内容,各设备的数据格式与应用的协议的协议格式相对应。所配置的协议格式包含对协议类型、协议头部、数据项内容以及协议尾部内容的定义。
字节编码协议格式设计:
字符串编码协议格式设计:
S2:获取所配置的所有数据协议(对应于不同的协议格式),得到数据协议内容信息,并存入协议结构体,形成协议数据列表。
S3:输入需要解析协议类型的标识,从协议数据列表中查找出对应的协议结构体。
S4:从缓存的数据中,读取所要解析的缓存数据,并根据所查找到的协议结构体,对待解析报文进行完整性判断:
解析报文的协议头部报文和尾部内容。若报文协议类型为字节编码协议格式,则判断头部报文是否包含数据长度,若是,则获取相应长度的数据作为完整数据,否则,以尾部标识作为完整数据的截止点。若报文协议类型为字符串编码协议格式,则根据协议头部报文和尾部内容的位置,提取两者间的数据作为完整数据。在此过程中,若再次获取到协议头部报文,则清除缓存数据,重复执行S4。
若完整性判断通过,则执行S5,否则,清除缓存数据,再次执行S4。
S5:对完整数据进行正确性验证:
若协议格式中尾部内容有校验方式,则以该校验方式对报文进行数据正确性判断,若检验成功,则执行下一步骤,否则,清除缓存数据,再次执行S4;若不存在校验方式,则跳过该步骤。
S6:根据S3中匹配出的协议结构体对报文数据进行解析的步骤:
所配置的协议格式中,包含数据项的数据项名称、类型以及数据长度。对于协议类型为字节编码的类型,按照字节长度及类型对数据内容逐一进行解析,数据会自动根据协议头部报文中的大小端编码方式进行数据大小端转换。对于协议类型为字符串编码格式,数据会自动根据协议头部报文数据分隔符的类型进行数据分离,并按照数据字节长度及类型将字符串内容转化成对应数据。
S7:将解析出的数据按照数据类型和数据长度进行数据打包。用户可以通过强制转换将解析的数据转换成结构体形式。
S8:在用户有存储需求时,执行S9,否则,结束。
S9:输入传感器设备ID,判断是否存在对应于该设备ID的数据表,若存在,则执行S13,否则,执行S10。
S10:根据所输入传感器设备的数据类型,在LDAP中获取对应的数据格式内容。
S11:解析所获取的数据格式内容,得到每个数据项的名称、类型和数据长度,形成数据项信息数组。
S12:根据构建的数据项信息数组的数据项名称、类型创建用于存储数据的数据表,针对每一台设备(以设备ID作为唯一标识),同时创建有实时表和历史表,实时表仅存储设备的最新数据,历史表存储设备的所有历史数据。
S13:在实时表中检索是否存在所要存入设备的数据项,若存在,则将实时表中对应于该设备的每一个数据项更新为最新数据(计划存入的数据);若不存在,则直接将计划存入的数据插入实时表中;
在历史表中,匹配设备的数据项,将待存入数据对应插入到所匹配到的数据项。
在执行数据更新或插入错误时,删除实时表,备份历史表后重新执行S9。
实施例五
如图1和2所示,本实施例以字节编码协议格式的A数据和字符串编码协议格式的B数据进行解析说明,并以A数据作为存储需求进行数据存储说明。
表1:A数据的数据协议配置如下表所示:
| 名称 | 字节数 | 数据类型 | 取值 | 说明 |
| 报文头 | 1字节 | unsigned char | 0x7E | 报文头,固定不变 |
| 报文长度 | 2字节 | unsigned short | ||
| 命令号 | 1字节 | unsigned char | ||
| 岛号 | 2字节 | unsigned short | ||
| 设备号 | 2字节 | unsigned short | ||
| 频率 | 2字节 | unsigned short | ||
| 脉冲积累个数 | 2字节 | unsigned short | ||
| 校验和 | 1字节 | unsigned char | 异或 |
表2:A数据采集设备所定义的数据格式如下表所示:
| 数据项名称 | 数据项描述 | 数据类型 | 数据长度 |
| site_no | 岛号 | INTEGER | 2字节 |
| dev_no | 设备号 | INTEGER | 2字节 |
| Hz | 频率 | INTEGER | 2字节 |
| num | 脉冲积累个数 | INTEGER | 2字节 |
解析和存储流程如下:
S1:启动LDAP服务器,将LDAP客户端连接该服务器,在LDAP客户端中配置A数据的协议格式,形成协议数据列表。协议格式包括协议类型、协议编号、协议首部、协议内容和协议尾部。
A.协议类型为字节编码类型;
B.协议编号设置为1;
C.协议首部中包含:协议头部长度4;协议项个数为3;协议项1字段说明为head,类型说明为char,大小为1;协议项2字段说明为len,类型说明为int,大小为2;协议项3字段说明为commad,类型说明为char,大小为1;大小端为小端类型;协议头部描述”7E”;
D.协议内容中包含:数据项个数为4;数据项1类型说明为int,大小为2;数据项2类型说明为int,大小为2;数据项3类型说明为int,大小为2;数据项4类型说明为int,大小为2;
E.协议尾部中包含:校验类型为异或类型,若无校验则该项值为0;校验开始位置为4,结束位置为12,若无校验这两项的值均为0;该协议中没有协议尾部时,协议尾部类型说明为int,大小为0,描述为空。
S2:连接LDAP,输入协议编号1,获取对应于的协议格式(字节编码类型),解析得到协议结构体LDAPZProtocal Detect_Protocal:Struct LdapZHeadProtocal{}、StructLdapDataProtocal{}、Struct LDAPZProtocal{}。
S3:获取A数据的缓存数据(由传感器设备采集),根据协议头部字节长度取得协议首部数据并按照首部协议项内容进行协议头部数据解析,可以得到该项数据的报文头,命令号,数据长度,根据数据长度接收固定长度的数据作为完整数据,在完整性验证通过后,执行S4。
S4:通过验证报文头、校验值来确定数据的正确性,在验证通过后,执行S5,否则,清除缓存,重新执行S3;若不存在校验方式,则跳过本步骤。
S5:按照协议结构体对报文各数据项内容进行数据解析,并自动根据大小端类型对需要转换的数据进行数据大小端转换。
S6:将所解析的各数据项内容安装所定义的数据长度进行字节打包。使用者可以通过类型强制转换的方式将打包的数据转换为结构体形式。
S7:在用户需要存储A数据时,在LDAP的数据格式目录下,新增A数据采集设备的数据格式,如表1,包括数据项名称、数据类型和字节长度。每一个数据项的格式以分号分隔,表2中的数据格式可以在LDAP中配置为如下形式:site_no:INTEGER:2;dev_no:INTEGER:2;Hz:INTEGER:2;num:INTEGER:2。
S8:在设备目录下,新增一个A数据采集设备,设定设备ID。同一种设备的数据类型相同,但是设备ID不同。
S9:在配置完成数据格式内容后,用户输入数据项内容、数据类型和设备ID后,方法自动读取LDAP中记录的协议格式配置文件,并据此完成数据表的构建。在数据格式发生改变时,通过LDAP中对A数据格式进行修改即可保持方法的正常执行。
S10:根据A数据的数据类型从LDAP中读取出相对应的数据格式内容,解析数据格式内容,依次将每个数据项的名称、类型及其长度,形成数据项信息数组。读取数据表存储时间配置信息,用于判断数据表是按天生成还是按月生成。可以根据设备ID和存储时间生成表名(也可以根据用户需求更改表名的生成方式),判断当前数据库中有无对应设备ID的数据表。若无则新建表,若存在则直接存储。设备存在唯一标识ID,在实时表中找到设备ID所在位置,更新这条数据,历史表则直接进行插入。若发生存储错误,则对表进行备份,重新生成新表存储。
对于中文字符的处理,在数据库按照编码格式不同,分成两个数据库,若有中文字符存储时,将表创建在UTF-8编码的数据库。
对于字符串编码类型的B数据解析过程如下:
B数据报文样式举例:20180509151200空格56空格23空格15:12回车ODOA作为结束符。
表3:B数据协议格式
| 数据项 | 内容举例 | 数据类型 |
| 年月日时分秒 | 20180509151200 | char[20] |
| 瞬时风向 | 56 | char |
| 瞬时风速 | 23 | char |
| 极大风速时间 | 15:12 | char[20] |
S1:启动LDAP服务器,将LDAP客户端连接该服务器,在LDAP客户端中配置B数据的协议格式,形成协议数据列表、协议格式包括协议类型、协议编号、协议首部、协议内容和协议尾部。
A.协议类型为字符串编码类型;
B.协议编号此处设置为2;
C.协议首部中包含:协议头部长度0;协议项个数为0;分隔符类型为空格类型;协议头部描述为空;
D.协议内容中包含:数据项个数为;数据项1类型说明为char,大小为20;数据项2类型说明为int,大小为1;数据项3类型说明为int,大小为1;数据项4类型说明为char,大小为20;
E.协议尾部中包含:该协议中无校验,因此校验项分隔符类型为0校验类型为0;校验开始位置为0,结束位置为0;协议尾部类型说明为char,大小为2,描述为“0D0A”。
S2:连接LDAP,输入协议编号2,获取协议编号对应的协议格式,解析得到协议结构体LDAPSProtocal_EVR_Protocal:Struct LdapHeadProtocal{}、StructLdapDataProtocal{}、Struct LDAPSProtocal{}。
S3:获取B数据的缓存数据,对应的协议结构体无协议首部,因此,按照收到的尾部结束标识作为完整数据,验证通过后,执行S4。
因协议结构体中无校验位,因此,无正确性验证步骤,默认上述完整数据为正确数据。
S4:按照协议结构体对报文各数据项内容进行数据解析,并自动根据数据分隔符类型对数据进行解析并按照数据项的类型进行数据转换。
S5:将所解析的各数据项内容按照其长度进行打包,得到最终的解析数据。使用者可以通过类型强制转换成数据结构体形式。
本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。
Claims (9)
1.一种报文数据通用存储方法,其特征在于,包括以下步骤:
A.在LDAP中预定义设备数据类型的数据格式内容,该数据格式内容与所配置的协议格式相对应;
B.根据所需存储数据的设备标识,判断是否存在对应于该设备标识的数据表,若存在,则执行D,否则,执行C;
C.基于所要存储的设备数据类型,在LDAP中获取对应的数据格式内容,并基于所获取的数据格式内容,构建数据表;
D.将利用数据报文通用自动解析方法所解析的设备的报文数据存入数据表;
所述数据报文通用自动解析方法包括以下步骤:
S1:在LDAP中,预配置若干种协议格式;
S2:存储所配置的协议格式;
S3:根据需要解析的报文所属的协议类型,匹配出对应的协议格式;
S4:基于所匹配出的协议格式对所述报文进行完整性判断,在判断通过后,执行后续步骤;
S5:利用所匹配出的协议格式,对所述报文的数据内容进行解析;
S6:依据所述报文对应的协议格式,对所解析出的数据进行格式转换。
2.如权利要求1所述的报文数据通用存储方法,其特征在于,所述S4-S5之间,还包括:
S4-5:对完整数据进行数据正确性验证的步骤:利用所匹配出的协议格式对报文进行数据正确性判断;在判断通过后,执行后续步骤。
3.如权利要求2所述的报文数据通用存储方法,其特征在于,所述S4-5中数据正确性判断流程为:若协议格式中尾部内容有校验方式,则以该校验方式对报文进行数据正确性判断,若检验成功,则执行下一步骤,否则,重新执行S4;
若不存在校验方式,则跳过该步骤。
4.如权利要求1-3任一所述的报文数据通用存储方法,其特征在于,所述S2具体为:获取所配置的所有数据协议,得到各协议的数据协议内容信息,并存入对应的协议结构体,形成协议数据列表。
5.如权利要求1-3任一所述的报文数据通用存储方法,其特征在于,所述S1中所配置的协议格式包括分别对字节编码类型和字符串编码类型所定义的协议格式。
6.如权利要求5所述的报文数据通用存储方法,其特征在于,所述S4中的完整性判断为:基于所匹配出的协议格式,解析出所述报文的协议头部报文和尾部内容,再利用协议头部报文和/或尾部内容对报文进行完整性验证。
7.如权利要求6所述的报文数据通用存储方法,其特征在于,所述利用协议头部报文和/或尾部内容对报文进行完整性验证具体为:
对于协议类型为字节编码格式,若协议格式中协议头部报文中包含数据长度,则获取相应长度的数据作为完整数据,若无数据长度,则以尾部标识作为完整数据截止点;对于协议类型为字符串编码格式,则以协议头部标识和尾部标识间的数据作为完整数据。
8.如权利要求1所述的报文数据通用存储方法,其特征在于,所述步骤C包括:
C1:根据输入的设备标识所对应的设备的数据类型,获取LDAP中对应的数据格式内容;
C2:解析所获取的数据格式内容,得到每个数据项所包含的信息,根据每个数据项所包含的信息,形成数据项信息数组;
C3:根据数据项信息数组,构建数据表。
9.如权利要求1或8所述的报文数据通用存储方法,其特征在于,所述数据表包括实时表和历史表,实时表仅存储设备的最新数据,历史表存储设备的所有历史数据。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201910341929.3A CN110012031B (zh) | 2019-04-26 | 2019-04-26 | 数据报文通用自动解析方法和存储方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201910341929.3A CN110012031B (zh) | 2019-04-26 | 2019-04-26 | 数据报文通用自动解析方法和存储方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN110012031A CN110012031A (zh) | 2019-07-12 |
| CN110012031B true CN110012031B (zh) | 2022-03-08 |
Family
ID=67174481
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201910341929.3A Active CN110012031B (zh) | 2019-04-26 | 2019-04-26 | 数据报文通用自动解析方法和存储方法 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN110012031B (zh) |
Families Citing this family (22)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110417783B (zh) * | 2019-07-30 | 2020-06-19 | 北京国信华源科技有限公司 | 一种基于物联网的数据传输方法、装置、储存介质及终端 |
| CN110474990A (zh) * | 2019-09-10 | 2019-11-19 | 杭州字节信息技术有限公司 | 一种基于LiteOS物联网操作系统的多传感器数据融合系统 |
| CN111277569B (zh) * | 2020-01-10 | 2022-08-16 | 北京融信易安信息技术有限公司 | 一种网络报文解码方法、装置及电子设备 |
| CN111464515A (zh) * | 2020-03-20 | 2020-07-28 | 苏州浪潮智能科技有限公司 | 一种数据转换方法、装置、设备及存储介质 |
| CN111641662B (zh) * | 2020-07-01 | 2023-05-12 | 中国银行股份有限公司 | 报文格式检验方法及装置 |
| CN111741019A (zh) * | 2020-07-28 | 2020-10-02 | 常州昊云工控科技有限公司 | 一种基于字段描述的通信协议解析方法和系统 |
| CN114168517B (zh) * | 2020-09-11 | 2024-01-16 | 北京机械设备研究所 | 一种通用异步串行数据解析方法及装置 |
| CN112087468A (zh) * | 2020-09-18 | 2020-12-15 | 国网浙江省电力有限公司 | 报文处理方法、相关设备及可读存储介质 |
| CN112291202B (zh) * | 2020-10-09 | 2023-09-26 | 腾讯科技(深圳)有限公司 | 报文数据的可视化方法、装置和计算机可读存储介质 |
| CN112445471A (zh) * | 2020-11-17 | 2021-03-05 | 北京仿真中心 | 基于数字试验或训练的通用数据解析软件架构设计方法 |
| CN112614331B (zh) * | 2020-12-14 | 2022-01-11 | 杭州海兴电力科技股份有限公司 | 抄读电能表事件的方法与电能表抄读事件系统 |
| CN112905701A (zh) * | 2021-02-24 | 2021-06-04 | 河南辉煌科技股份有限公司 | 一种多协议通信实时库数据聚合方法及系统 |
| CN112732739B (zh) * | 2021-03-30 | 2021-07-20 | 南京粒聚智能科技有限公司 | 一种分析设备数据地址的方法和装置 |
| CN113872963B (zh) * | 2021-09-26 | 2023-09-29 | 中水北方勘测设计研究有限责任公司 | 基于自由标签拼接技术的报文协议快速解析方法及系统 |
| CN114520837A (zh) * | 2021-12-27 | 2022-05-20 | 苏州绿科智能机器人研究院有限公司 | 一种基于面向对象技术的解析上发报文数据的方法 |
| CN114339762B (zh) * | 2021-12-31 | 2024-11-12 | 南京创通微新通信有限公司 | 基于小包聚合的数据转发方法、系统及存储介质 |
| CN114979307B (zh) * | 2022-04-19 | 2024-07-26 | 杭州涂鸦信息技术有限公司 | 通信协议的解析方法、智能终端及存储介质 |
| CN115190190B (zh) * | 2022-08-03 | 2023-09-26 | 国网湖南省电力有限公司 | 电力物联网协议的预解析方法及其预解析系统 |
| CN115297191B (zh) * | 2022-09-30 | 2022-12-16 | 成都云智北斗科技有限公司 | 一种多数据流服务器 |
| CN116055589B (zh) * | 2023-01-28 | 2023-06-06 | 北京国科天迅科技有限公司 | 数据管理方法、装置及计算机设备 |
| CN116366742A (zh) * | 2023-04-06 | 2023-06-30 | 山东中创软件商用中间件股份有限公司 | 车道报文接收解析方法、装置、系统、服务器及存储介质 |
| CN116634046A (zh) * | 2023-06-27 | 2023-08-22 | 北京安博通金安科技有限公司 | 报文处理方法、装置、电子设备及存储介质 |
Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1556611A (zh) * | 2003-12-30 | 2004-12-22 | 上海交通大学 | 基于安全应用服务器的网络信息安全综合管理方法 |
| CN1822590A (zh) * | 2004-10-28 | 2006-08-23 | 微软公司 | 保护轻量级目录访问协议的通信 |
| CN1940929A (zh) * | 2005-09-26 | 2007-04-04 | 捷讯研究有限公司 | Ldap到sql的数据库代理系统和方法 |
| WO2009032097A1 (en) * | 2007-08-28 | 2009-03-12 | Rohati Systems, Inc. | Highly scalable architecture for application network appliances |
| CN101401341A (zh) * | 2005-11-18 | 2009-04-01 | 安全第一公司 | 安全数据解析方法和系统 |
| CN102801742A (zh) * | 2012-08-31 | 2012-11-28 | 江苏景云云计算有限公司 | 一种基于xmpp协议的通讯系统及其方法 |
| CN103685484A (zh) * | 2013-11-29 | 2014-03-26 | 中国物品编码中心 | 物联网统一标识编码解析的方法和装置 |
| CN109246102A (zh) * | 2018-09-07 | 2019-01-18 | 公安部第研究所 | 一种支撑大规模认证数据快速存储及检索的系统及方法 |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| ATE397769T1 (de) * | 2001-03-19 | 2008-06-15 | Empirix Inc | Verfahren zum verfolgen und analysieren einer mehrprotokollkommunikation |
| JP4192972B2 (ja) * | 2006-07-03 | 2008-12-10 | 村田機械株式会社 | 複合機およびそのユーザ情報管理方法 |
| CN101674319B (zh) * | 2008-09-09 | 2012-09-05 | 华为技术有限公司 | 一种数据开户、访问的方法、系统和设备 |
| CN102279853A (zh) * | 2010-06-12 | 2011-12-14 | 陈健华 | 一种基于ldap的快速数据访问方法 |
| CN107306256B (zh) * | 2016-04-22 | 2021-02-12 | 上海真虹信息科技有限公司 | 一种基于字符串类型数据的通讯协议解析方法 |
| CN107277126B (zh) * | 2017-06-13 | 2020-08-04 | 郑州云海信息技术有限公司 | 一种云计算资源管理方法及装置 |
-
2019
- 2019-04-26 CN CN201910341929.3A patent/CN110012031B/zh active Active
Patent Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1556611A (zh) * | 2003-12-30 | 2004-12-22 | 上海交通大学 | 基于安全应用服务器的网络信息安全综合管理方法 |
| CN1822590A (zh) * | 2004-10-28 | 2006-08-23 | 微软公司 | 保护轻量级目录访问协议的通信 |
| CN1940929A (zh) * | 2005-09-26 | 2007-04-04 | 捷讯研究有限公司 | Ldap到sql的数据库代理系统和方法 |
| CN101401341A (zh) * | 2005-11-18 | 2009-04-01 | 安全第一公司 | 安全数据解析方法和系统 |
| WO2009032097A1 (en) * | 2007-08-28 | 2009-03-12 | Rohati Systems, Inc. | Highly scalable architecture for application network appliances |
| CN102801742A (zh) * | 2012-08-31 | 2012-11-28 | 江苏景云云计算有限公司 | 一种基于xmpp协议的通讯系统及其方法 |
| CN103685484A (zh) * | 2013-11-29 | 2014-03-26 | 中国物品编码中心 | 物联网统一标识编码解析的方法和装置 |
| CN109246102A (zh) * | 2018-09-07 | 2019-01-18 | 公安部第研究所 | 一种支撑大规模认证数据快速存储及检索的系统及方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN110012031A (zh) | 2019-07-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN110012031B (zh) | 数据报文通用自动解析方法和存储方法 | |
| CN108600192B (zh) | 一种基于正则表达式的dbc文件解析及报文分析方法 | |
| CN104281672B (zh) | 日志数据的处理方法和装置 | |
| CN114006928B (zh) | 一种基于多协议实时通信的物联网数据处理方法 | |
| CN110334326B (zh) | 一种识别配方文件并转化为xml文件的方法及系统 | |
| CN106933703A (zh) | 一种数据库数据备份的方法、装置及电子设备 | |
| CN109918341B (zh) | 日志处理方法及装置 | |
| US11989103B2 (en) | Device and a method for indexing snapshots of multiple file systems | |
| CN110266702A (zh) | 基于XML的Wireshark用协议解析方法 | |
| CN111600945B (zh) | 一种基于块传输的ftp服务器断点下载方法及装置 | |
| CN111857707A (zh) | 名单数据处理方法、装置、设备及存储介质 | |
| CN114938386B (zh) | 一种车云通信系统 | |
| CN117240943A (zh) | 接口数据解析方法和装置 | |
| CN117714562A (zh) | 一种网络通信协议语法信息的自动化提取方法及系统 | |
| CN108009049A (zh) | Myisam存储引擎删除记录离线恢复方法、存储介质 | |
| CN116166640B (zh) | 全球导航卫星观测数据实时采集与管理方法及系统 | |
| CN110413711A (zh) | 一种差异数据获取方法及其存储介质 | |
| CN119603059B (zh) | 网络安全测试用例的生成参数补全方法、系统及存储介质 | |
| CN115118793B (zh) | 一种blf文件解析容错方法、装置及计算机设备 | |
| CN119576930A (zh) | 一种基于数据采集自动生成库表资源的方法 | |
| CN110581823B (zh) | 一种非公开数据库协议请求数据包的解析方法 | |
| CN114915548B (zh) | 一种基于单片机can协议可视化配置和自动解析方法 | |
| CN118400439A (zh) | 直放站网管数据处理方法及系统 | |
| KR20180108505A (ko) | 메타 모델 기반 프로토콜의 저용량 전송을 위한 데이터 변형 방법 및 메타 모델 기반 프로토콜의 저용량 전송을 위한 데이터 전송 시스템 | |
| US20040015780A1 (en) | Position-independent access to data elements in an electronic document |
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 | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |

