CN109510686B - 一种通用的二进制流数据转换处理方法 - Google Patents
一种通用的二进制流数据转换处理方法 Download PDFInfo
- Publication number
- CN109510686B CN109510686B CN201811066271.1A CN201811066271A CN109510686B CN 109510686 B CN109510686 B CN 109510686B CN 201811066271 A CN201811066271 A CN 201811066271A CN 109510686 B CN109510686 B CN 109510686B
- Authority
- CN
- China
- Prior art keywords
- data
- frame
- information
- file
- user
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0006—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format
- H04L1/0007—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format by modifying the frame length
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0078—Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
- H04L1/0083—Formatting with frames or packets; Protocol or part of protocol for error control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0078—Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
- H04L1/0084—Formats for payload data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种通用的二进制流数据转换处理方法,涉及计算机技术领域。本发明采用通用化配置文件格式,以及具备兼容多种协议帧同时分析解析的能力,可以按照用户实际使用需求,进行配置更新,从而按照用户需求,从二进制流数据文件中自动解析出实际可用的信息。并且,本发明能够完整形成异常结果信息日志文件,以及常规的异常帧数据处理机制。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种通用的二进制流数据转换处理方法。
背景技术
目前,在嵌入式设备常规的通讯接口数据通讯(RS422、RS232等)、数据离线存储(如黑匣子、emmc、flash存储)等方面,往往受限于通讯速率、数据存储量等限制条件,大多采用二进制流数据保存方式,并进行了常规的数据帧封装,添加了数据帧头、帧尾或校验和值。
大多用户通过对应专用的数据帧解析方式来离线处理或解析存储数据,从而达到将二进制流数据转换为用户能够识别的具备物理含义的数据。
受限于各个用户的认识和需求差异,数据帧的封装方式千差万别,如帧头的选用方式有0xff 0x02、0x5a5a、0x6699等各种方式,数据帧中是否包含ID信息区分码,数据字节序是否为逆序,数据是否包含子帧数据,校验方式的差异,校验字节数的差异等等,不一一列举,使得数据的离线解析和转换处理异常复杂和麻烦,解析处理效率极低;而且用户的数据帧往往受使用需求影响,具有频繁变更的特性,往往需要增加或者改变某些数据的发送内容,增加一次性处理的数据输入数量,或者分离保存数据结果,这更给数据的离线处理带来困扰。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何设计一种通用的二进制流数据转换处理方法。
(二)技术方案
为了解决上述技术问题,本发明提供了一种通用的二进制流数据转换处理方法,包括以下步骤:
步骤1:生成用户可配置文件,所述用户可配置文件包含如下配置信息:
1)用户解析文件信息:包含文件名,信息帧类型;
2)二进制数据流的数据帧格式:包含帧头信息、帧头长度、数据长度、数据长度字节数、校验和方式、校验和位置、指定区分状态字;
3)数据帧内容格式:包含每种数据帧的每个解析变量的信息,主要为名称、单位、有效位、进制、符号、分辨率、整数位数、小数位数、是否显示、是否保存、IEEE数据转换信息;
步骤2:通过步骤1生成的配置信息,完成用户对二进制流数据的解析处理,包括数据文件的打开和安全性检查操作,以及数据的检帧、分帧、按照配置文件信息解析数据原码,以及数据解析后的文件保存操作;同时,数据处理过程中,对异常数据的处理和报表日志信息进行保存。
优选地,在步骤1与步骤2之间还包括以下步骤:通过可配置文件解析转换为统一的格式信息结构体类信息,即包含可配置的帧头字节数据值和帧头字节数,校验和计算方式代号,数据长度的解析字节数信息;在步骤2中处理数据流时,均按照格式信息结构体进行原码数据字节的组帧、判别处理。
优选地,步骤1中,对于NMEA协议格式的数据流文件,设定帧头长度为6字节,从而对$GPGGA、$GPRMC这些通用协议帧进行区分,即实现均可归纳为6字节的帧头处理格式检测信息,其校验方式为字节异或结果,即归纳为校验和计算方式代号为4的枚举类型。
优选地,在步骤1中通过用户使用交互界面进行用户可配置文件管理、用户数据类型配置、解析方式的设置,以实现对常规的固定的二进制帧头数据流进行解析,同时,通过对指定的NMEA协议帧类型配置,进行NMEA协议数据的解析和保存处理。
优选地,步骤2具体包括以下步骤:
步骤201:读取数据;
步骤202:判断数据文件是否到文件尾;若是则结束,否则继续下一步骤;
步骤203:判断是否检测到帧头1:0x55,若是则继续下一步骤,否则返回步骤201重新读取下一数据;
步骤204:判断是否检测到帧头2:0xAA,若是则按照可配置文件的数据帧长度,读取指定数据长度的字节数;
步骤205:进入连续读取数据状态机模式,连续读取指定数据帧的数据字节数和帧校验结果;
步骤206:判断数据帧是否有拼帧现象,若有则剔除前半帧无效数据,然后继续读取指定长度的完整帧数据,进入下一步;否则直接进入下一步;
步骤207:比对数据帧校验和是否有效,若有效则进入步骤208,否则进入步骤209;
步骤208:检测数据帧是否符合用户配置帧信息格式约束,若是则进入步骤2010,否则结束;
步骤209:异常处理:报送log日志记录文件信息,记录问题点的字节偏移位置,然后结束;
步骤2010:按照用户配置信息变量格式进行解析和数据保存;
步骤2011:进行数据保存后退出状态机,进入下帧数据间隔过程,然后结束。
优选地,步骤209中,所有校验异常位置、数据半帧拼接位置均按照对应数据文件的原码字节位置信息报送log日志记录日志文件。
(三)有益效果
本发明采用通用化配置文件格式,以及具备兼容多种协议帧同时分析解析的能力,可以按照用户实际使用需求,进行配置更新,从而按照用户需求,从二进制流数据文件中自动解析出实际可用的信息。并且,本发明能够完整形成异常结果信息日志文件,以及常规的异常帧数据处理机制。
附图说明
图1是本发明的方法主要流程图。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
本发明的一种通用的二进制流数据转换处理方法包括以下步骤:
步骤1:生成用户可配置文件,所述用户可配置文件包含如下配置信息:
1)用户解析文件信息:包含文件名,信息帧类型;
2)二进制数据流的数据帧格式:包含帧头信息、帧头长度、数据长度、数据长度字节数、校验和方式、校验和位置、指定区分状态字;
3)数据帧内容格式:包含每种数据帧的每个解析变量的信息,主要为名称、单位、有效位、进制、符号、分辨率、整数位数、小数位数、是否显示、是否保存、IEEE数据转换信息。
步骤2:通过步骤1生成的配置信息,完成用户对二进制流数据的解析处理,包括数据文件的打开和安全性检查操作,以及数据的检帧、分帧、按照配置文件信息解析数据原码,以及数据解析后的文件保存操作;同时,数据处理过程中,对异常数据的处理和报表日志信息进行保存。
以固定帧头为0x55/0xAA,单字节长度,累加求和的校验计算方式的数据帧为例,用户按照上述配置信息设定后,均通过配置文件解析转换为统一的格式信息结构体类信息,即包含可配置的帧头字节数据值和帧头字节数,校验和计算方式代号(如累加求和方式代号为0,累加包括数据长度字节为2,CRC32校验为3等等),数据长度的解析字节数等信息。在处理数据流时,均按照格式信息结构体进行原码数据字节的组帧、判别处理,从而实现完全依赖配置文件的方式达到解耦的目的,在数据流处理组帧操作层面统一起来。
此外,对于NMEA(GPS导航设备统一的RTCM标准协议,每种都是独立相关的ASCII格式)协议格式的数据流文件举例,可以设定帧头长度为6字节,从而对$GPGGA、$GPRMC等通用协议帧进行区分,即可实现均可归纳为6字节的帧头处理格式检测信息。其校验方式为字节异或结果,即归纳为校验和计算方式代号为4的枚举类型。
具体的二进制流数据组帧解析操作步骤如图1所示,步骤2包括以下步骤:
步骤201:读取数据;
步骤202:判断数据文件是否到文件尾;若是则结束,否则继续下一步骤;
步骤203:判断是否检测到帧头1:0x55,若是则继续下一步骤,否则返回步骤201重新读取下一数据;
步骤204:判断是否检测到帧头2:0xAA,若是则按照可配置文件的数据帧长度,读取指定数据长度的字节数;
步骤205:进入连续读取数据状态机模式,连续读取指定数据帧的数据字节数和帧校验结果;
步骤206:判断数据帧是否有拼帧现象,若有则剔除前半帧无效数据,然后继续读取指定长度的完整帧数据,进入下一步;否则直接进入下一步;
步骤207:比对数据帧校验和是否有效,若有效则进入步骤208,否则进入步骤209;
步骤208:检测数据帧是否符合用户配置帧信息格式约束,若是则进入步骤2010,否则结束;
步骤209:异常处理:报送log日志记录文件信息,记录问题点的字节偏移位置,然后结束;
步骤2010:按照用户配置信息变量格式进行解析和数据保存;
步骤2011:进行数据保存后退出状态机,进入下帧数据间隔过程,然后结束。
由上述步骤可见,对数据帧优化了检帧和有效性检测机制约束。实际数据接口保存过程中,往往会有数据字节丢失情况出现。导致数据帧不完整,但往往前半帧有效,拼接了一个正常帧,如果按照数据流先后进行数据帧处理,则会拆错后面完整的数据帧,导致珍贵的有效的数据帧缺失解析,给用户带来使用上的问题。
此外,用户的数据帧长度往往受保存资源限制,导致数据帧帧头、长度一致,内部子帧数据格式不同;因而,通过配置用户的附加指定区分状态字信息(指定状态字起始字节位置、状态字节数、状态字值),优化兼容了同帧基本信息的情况,有效提高了数据解析的辨析能力和兼容性。
如图1所示,数据的处理过程中,所有校验异常位置、数据半帧拼接位置均按照对应数据文件的原码字节位置信息报送处理结果日志文件“ReadMe123.txt”,用户可以高效、准确的一次性找到数据原码问题点,从而大大减少在原码处理上花费的时间和精力,为后续的数据诊断和使用带来便利。
在步骤1中通过用户使用交互界面进行用户可配置文件管理、用户数据类型配置、解析方式的设置,以实现对常规的固定的二进制帧头数据流进行解析。同时,也可以通过对指定的NMEA协议帧类型配置,进行NMEA协议数据的解析和保存处理,大大减轻用户数据处理的压力。
可以看出,本发明通过对用户常用指定帧头及校验和方式的二进制数据流的格式归纳和统一解耦处理,采用优化的数据检帧、分帧方式,以及合理的异常处理方式、数据信息日志结果,完成对二进制数据流的完整解析。本发明欲保护此种通用的用户配置方式和数据解析算法,以及用户配置交互界面的内容和方式。本发明能够适配于多种格式的二进制流数据解析,用户仅需对配置文件进行修改即可进行解析数据,并且配置文件可兼容并存,长期使用;同时,大大提升了数据解析的效率,给用户的数据分析带来极大便利。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (5)
1.一种通用的二进制流数据转换处理方法,其特征在于,包括以下步骤:
步骤1:生成用户可配置文件,所述用户可配置文件包含如下配置信息:
1)用户解析文件信息:包含文件名,信息帧类型;
2)二进制数据流的数据帧格式:包含帧头信息、帧头长度、数据长度、数据长度字节数、校验和方式、校验和位置、指定区分状态字;
3)数据帧内容格式:包含每种数据帧的每个解析变量的信息,主要为名称、单位、有效位、进制、符号、分辨率、整数位数、小数位数、是否显示、是否保存、IEEE数据转换信息;
步骤2:通过步骤1生成的配置信息,完成用户对二进制流数据的解析处理,包括数据文件的打开和安全性检查操作,以及数据的检帧、分帧、按照配置文件信息解析数据原码,以及数据解析后的文件保存操作;同时,数据处理过程中,对异常数据的处理和报表日志信息进行保存;
步骤1中,对于NMEA协议格式的数据流文件,设定帧头长度为6字节,从而对$GPGGA、$GPRMC这些通用协议帧进行区分,即实现均可归纳为6字节的帧头处理格式检测信息,其校验方式为字节异或结果,即归纳为校验和计算方式代号为4的枚举类型。
2.如权利要求1所述的方法,其特征在于,在步骤1与步骤2之间还包括以下步骤:通过可配置文件解析转换为统一的格式信息结构体类信息,即包含可配置的帧头字节数据值和帧头字节数,校验和计算方式代号,数据长度的解析字节数信息;在步骤2中处理数据流时,均按照格式信息结构体进行原码数据字节的组帧、判别处理。
3.如权利要求1所述的方法,其特征在于,在步骤1中通过用户使用交互界面进行用户可配置文件管理、用户数据类型配置、解析方式的设置,以实现对常规的固定的二进制帧头数据流进行解析,同时,通过对指定的NMEA协议帧类型配置,进行NMEA协议数据的解析和保存处理。
4.如权利要求2所述的方法,其特征在于,步骤2具体包括以下步骤:
步骤201:读取数据;
步骤202:判断数据文件是否到文件尾;若是则结束,否则继续下一步骤;
步骤203:判断是否检测到帧头1:0x55,若是则继续下一步骤,否则返回步骤201重新读取下一数据;
步骤204:判断是否检测到帧头2:0xAA,若是则按照可配置文件的数据帧长度,读取指定数据长度的字节数;
步骤205:进入连续读取数据状态机模式,连续读取指定数据帧的数据字节数和帧校验结果;
步骤206:判断数据帧是否有拼帧现象,若有则剔除前半帧无效数据,然后继续读取指定长度的完整帧数据,进入下一步;否则直接进入下一步;
步骤207:比对数据帧校验和是否有效,若有效则进入步骤208,否则进入步骤209;
步骤208:检测数据帧是否符合用户配置帧信息格式约束,若是则进入步骤2010,否则结束;
步骤209:异常处理:报送log日志记录文件信息,记录问题点的字节偏移位置,然后结束;
步骤2010:按照用户配置信息变量格式进行解析和数据保存;
步骤2011:进行数据保存后退出状态机,进入下帧数据间隔过程,然后结束。
5.如权利要求4所述的方法,其特征在于,步骤209中,所有校验异常位置、数据半帧拼接位置均按照对应数据文件的原码字节位置信息报送log日志记录日志文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811066271.1A CN109510686B (zh) | 2018-09-13 | 2018-09-13 | 一种通用的二进制流数据转换处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811066271.1A CN109510686B (zh) | 2018-09-13 | 2018-09-13 | 一种通用的二进制流数据转换处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109510686A CN109510686A (zh) | 2019-03-22 |
CN109510686B true CN109510686B (zh) | 2022-05-31 |
Family
ID=65744479
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811066271.1A Active CN109510686B (zh) | 2018-09-13 | 2018-09-13 | 一种通用的二进制流数据转换处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109510686B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110109896B (zh) * | 2019-04-13 | 2021-12-10 | 成都飞机工业(集团)有限责任公司 | Uav飞行参数智能还原方法 |
CN110213297B (zh) * | 2019-06-27 | 2022-01-18 | 北京史河科技有限公司 | 一种数据解析方法、装置及计算机可读存储介质 |
CN110417773A (zh) * | 2019-07-26 | 2019-11-05 | 湖北三江航天红峰控制有限公司 | 一种串口协议数据采集解析方法、系统及装置 |
CN111339370B (zh) * | 2019-12-11 | 2023-08-11 | 山东航空股份有限公司 | 飞机qar数据的快速译码方法 |
CN111541697B (zh) * | 2020-04-24 | 2022-08-02 | 卡斯柯信号有限公司 | 一种基于协议配置的在线通信方法 |
CN114979307A (zh) * | 2022-04-19 | 2022-08-30 | 杭州涂鸦信息技术有限公司 | 通信协议的解析方法、智能终端及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101335549A (zh) * | 2008-08-06 | 2008-12-31 | 北京创毅视讯科技有限公司 | 复用装置和复用方法 |
CN101576742A (zh) * | 2009-06-19 | 2009-11-11 | 西安交通大学 | 一种数控切纸机远程监控与故障诊断系统及其实现方法 |
CN102098131A (zh) * | 2009-12-15 | 2011-06-15 | 航天科工惯性技术有限公司 | 一种基于动态参数配置的串口数据帧通用组帧解帧方法 |
CN102510323A (zh) * | 2011-09-22 | 2012-06-20 | 航天科工惯性技术有限公司 | 一种串口数据的帧识别方法 |
WO2016037474A1 (zh) * | 2014-09-12 | 2016-03-17 | 中兴通讯股份有限公司 | 定帧方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7433880B2 (en) * | 2004-09-13 | 2008-10-07 | Atwell Computer Medical Innovations, Inc. | Method and system for high speed encoding, processing and decoding of data |
-
2018
- 2018-09-13 CN CN201811066271.1A patent/CN109510686B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101335549A (zh) * | 2008-08-06 | 2008-12-31 | 北京创毅视讯科技有限公司 | 复用装置和复用方法 |
CN101576742A (zh) * | 2009-06-19 | 2009-11-11 | 西安交通大学 | 一种数控切纸机远程监控与故障诊断系统及其实现方法 |
CN102098131A (zh) * | 2009-12-15 | 2011-06-15 | 航天科工惯性技术有限公司 | 一种基于动态参数配置的串口数据帧通用组帧解帧方法 |
CN102510323A (zh) * | 2011-09-22 | 2012-06-20 | 航天科工惯性技术有限公司 | 一种串口数据的帧识别方法 |
WO2016037474A1 (zh) * | 2014-09-12 | 2016-03-17 | 中兴通讯股份有限公司 | 定帧方法及装置 |
Non-Patent Citations (3)
Title |
---|
SAT技术在报纸版面传输上的应用;孙宇彤;《电信快报》;20000725(第07期);全文 * |
VxWorks中基于RS485总线的串口通信协议及实现;张爱卿等;《微计算机信息》;20060620(第17期);全文 * |
基于ZigBee无线网络技术的客车安全监测系统;张兵等;《电子技术应用》;20070906(第09期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109510686A (zh) | 2019-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109510686B (zh) | 一种通用的二进制流数据转换处理方法 | |
US11158143B2 (en) | Vehicle diagnostic method and device, and computer readable storage medium | |
US7889384B2 (en) | Method for more efficiently managing complex payloads in a point of sale system | |
US5787450A (en) | Apparatus and method for constructing a non-linear data object from a common gateway interface | |
US6608274B1 (en) | Method and system for online communication between a check sorter and a check processing system | |
AU2001251402A1 (en) | Method and system for online communication between a check sorter and a check processing system | |
CN104991263A (zh) | 进行卫星定位信号解析的方法 | |
CN110888791A (zh) | 一种日志处理方法、装置、设备和存储介质 | |
CN115543755B (zh) | 一种性能监管方法、装置、系统、设备和介质 | |
AU2001255517B2 (en) | Method and system for emulating a check sorter | |
CN113676290A (zh) | 一种基于基金系统的数据传输方法及相关设备 | |
CN114462381A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN111352751A (zh) | 数据文件生成方法、装置、计算机设备及存储介质 | |
CN102831347B (zh) | 一种数据处理方法和装置 | |
CN111083123B (zh) | 一种设备故障处理方法、装置、电子设备和存储介质 | |
CN115203096B (zh) | 一种sim卡拉远的实现方法 | |
CN112751873B (zh) | 蓝牙midi数据转换方法、电路及存储介质 | |
CN112525450B (zh) | 一种降低可靠性测试中振动数据存储空间占用率的方法 | |
CN114218441B (zh) | 对uof文档进行调用和展示的方法 | |
CN101272218A (zh) | 一种记录通信终端诊断数据的方法 | |
CN110825751B (zh) | 一种自定义数据格式的方法及数据转换系统 | |
CN113766545B (zh) | 无线网络的身份识别方法和装置 | |
CN107690819B (zh) | iOS设备与蓝牙设备交互数据的读取方法及系统 | |
JPH0644126A (ja) | ファイル転送装置 | |
CN117499088A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |