CN109542806B - 总线数据解析方法、装置及存储介质 - Google Patents
总线数据解析方法、装置及存储介质 Download PDFInfo
- Publication number
- CN109542806B CN109542806B CN201811428027.5A CN201811428027A CN109542806B CN 109542806 B CN109542806 B CN 109542806B CN 201811428027 A CN201811428027 A CN 201811428027A CN 109542806 B CN109542806 B CN 109542806B
- Authority
- CN
- China
- Prior art keywords
- data
- bus data
- field
- bus
- analysis
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Bus Control (AREA)
Abstract
本发明涉及通信技术领域,公开了一种总线数据解析方法、装置及存储介质,解决了现有技术中重刷固件或重启系统设备来实现协议的变更,以及多应用线程请求数据解析在线等待的问题。所述方法包括:获取待解析的总线数据中的字段名称;在预设解析协议集合中查找与所述字段名称对应的数据标识和解析方式;在总线数据缓存中查找与所述数据标识对应的总线数据;根据与所述数据标识对应的总线数据与所述解析方式,解析得到与所述字段名称对应的字段数据的解析结果。本发明实施例适用于总线数据的处理。
Description
技术领域
本发明涉及通信技术领域,具体地,涉及一种总线数据解析方法、装置及存储介质。
背景技术
随着工程机械产品智能化的发展,多传感、多处理节点的大量数据交互对电气控制处理终端的处理能力提出了更高的要求。而在工程机械行业使用广泛的CAN总线和基于ModeBus协议的485总线仍使用硬编码对协议中各字段的含义进行解析。
现有技术中的协议解析属于硬编码解析,解析协议固化在软件代码中,一旦协议有修订或变更,需要重新编译固件并更新至硬件中,费时费力。而且数据解析是逐条解析,数据吞吐量大,应用线程获取解析结果时存在在线等待的情况。
发明内容
本发明的目的是提供一种总线数据解析方法、装置及存储介质,解决了现有技术中重刷固件或重启系统设备来实现协议的变更,以及多应用线程请求数据解析在线等待的问题,实现了热更改协议配置,并由应用线程提供协议解析的计算资源,减少系统计算资源的占用,多应用线程的数据请求与解析互不干扰,提高数据处理效率。
为了实现上述目的,本发明提供一种总线数据解析方法,包括:获取待解析的总线数据中的字段名称;在预设解析协议集合中查找与所述字段名称对应的数据标识和解析方式;在总线数据缓存中查找与所述数据标识对应的总线数据;根据与所述数据标识对应的总线数据与所述解析方式,解析得到与所述字段名称对应的字段数据的解析结果。
进一步地,所述预设解析协议集合包括总线数据的数据标识、所述数据标识对应的字段名称以及每个字段名称对应的解析方式。
进一步地,所述在总线数据缓存中查找与所述数据标识对应的总线数据包括:在总线数据缓存中获取与所述数据标识对应的总线数据;根据获取的总线数据对应的时间戳,查找与所述数据标识对应的最新的总线数据。
进一步地,所述根据与所述数据标识对应的总线数据与所述解析方式,解析得到与所述字段名称对应的字段数据的解析结果包括:根据所述解析方式中的位置信息,在与所述数据标识对应的总线数据中提取所述字段名称对应的字段数据,所述位置信息用于指示所述字段名称对应的字段数据在与所述数据标识对应的总线数据中的位置;根据所述解析方式中的解析协议对所述字段数据进行解析,得到与所述字段名称对应的字段数据的解析结果。
相应的,本发明实施例还提供一种总线数据解析装置,包括:获取模块,用于获取待解析的总线数据中的字段名称;第一查找模块,用于在预设解析协议集合中查找与所述字段名称对应的数据标识和解析方式;第二查找模块,用于在总线数据缓存中查找与所述数据标识对应的总线数据;解析模块,用于根据与所述数据标识对应的总线数据与所述解析方式,解析得到与所述字段名称对应的字段数据的解析结果。
进一步地,所述预设解析协议集合包括总线数据的数据标识、所述数据标识对应的字段名称以及每个字段名称对应的解析方式。
进一步地,所述第二查找模块还用于在总线数据缓存中获取与所述数据标识对应的总线数据;根据获取的总线数据对应的时间戳,查找与所述数据标识对应的最新的总线数据。
进一步地,所述解析模块还用于根据所述解析方式中的位置信息,在与所述数据标识对应的总线数据中提取所述字段名称对应的字段数据,所述位置信息用于指示所述字段名称对应的字段数据在与所述数据标识对应的总线数据中的位置;根据所述解析方式中的解析协议对所述字段数据进行解析,得到与所述字段名称对应的字段数据的解析结果。
相应的,本发明实施例还提供一种存储介质,所述存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如上所述的总线数据解析方法。
通过上述技术方案,在应用线程要获取总线数据中的某一字段名称对应的字段数据进行解析时,在预设解析协议集合中查找与所述字段名称对应的数据标识和解析方式,然后在总线数据缓存中查找与所述数据标识对应的总线数据,并根据所述解析方式,将所述数据标识对应的总线数据中的字段名称对应的字段数据进行解析,得到解析结果。本发明实施例解决了现有技术中重刷固件或重启系统设备来实现协议的变更,以及多应用线程请求数据解析在线等待的问题,实现了热更改协议配置,并由应用线程提供协议解析的计算资源,减少系统计算资源的占用,多应用线程的数据请求与解析互不干扰,提高数据处理效率。
本发明的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:
图1是现有技术中的总线数据解析过程示意图;
图2是本发明实施例提供的一种总线数据解析方法的流程示意图;
图3是本发明实施例提供的总线数据解析功能架构示意图;
图4是本发明实施例提供的总线数据解析过程示意图;
图5是本发明实施例提供的一种总线数据解析装置的结构示意图。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
在现有技术中对总线数据中各字段名称对应的字段数据进行解析时,一般是将解析协议固化至软件代码中,一旦协议有修订或变更,需要重新编译固件并更新至硬件中,费时费力。应用线程请求数据解析时,利用系统计算资源对请求逐条解析。如图1所示,当应用线程1请求总线数据中字段名称为“转速”的字段数据进行解析时,系统对该总线数据进行完整解析,并将该总线数据的完整解析结果存储起来,以便应用线程1提取所需的解析结果3。而若应用线程2请求总线数据中字段名称为“油量”的字段数据进行解析时,需要等待前面的应用线程请求的数据解析完之后,才能对应用线程2的请求进行处理。若是解析结果中存在“油量”的解析结果6,则可直接获取,若是没有,则还要占用系统计算资源进行数据解析。在现有技术中数据解析所占用的资源为系统资源,且在数据解析时没有针对性,而是将包含请求的字段名称的总线数据完整解析,存在解析资源浪费的情况。另外,对于总线数据的完整解析结果的存储需要大量的存储空间,但是实际请求的数据解析结果只占其中的一部分,存在存储空间浪费的情况。
本发明实施例正是为了解决上述技术问题而提出的,其中利用预设解析协议集合的方式,实现解析协议的加载和调用,无需重刷固件或重启系统设备。对应用线程请求的字段名称对应的字段数据进行解析,实现有针对性的解析,节约解析资源,而且解析结果直接由应用线程获取,节省存储空间。另外,解析所用计算资源由应用线程提供,减少系统计算资源占用,每个应用线程的数据请求及解析互不干扰,不存在应用线程间数据请求导致的在线等待的问题。下面将详细描述本发明实施例的具体实施方式。
图2是本发明实施例提供的一种总线数据解析方法的流程示意图。如图2所示,所述方法包括如下步骤:
步骤201,获取待解析的总线数据中的字段名称;
步骤202,在预设解析协议集合中查找与所述字段名称对应的数据标识和解析方式;
步骤203,在总线数据缓存中查找与所述数据标识对应的总线数据;
步骤204,根据与所述数据标识对应的总线数据与所述解析方式,解析得到与所述字段名称对应的字段数据的解析结果。
其中,总线数据均有对应的数据标识,并包含多个字段数据。以CAN总线为例,每个总线数据包括8个字段数据,每个字段数据有对应的字段名称。
如图3所示,可将本发明实施例提供的总线数据解析分为三个功能层来理解,包括数据层、协议层和解析层。其中,数据层用于缓存总线数据,可设定缓存数据的失效时长和最大缓存数据量。同一个数据标识对应的总线数据会有更新,而每个总线数据均有对应的时间戳,可根据时间戳以及失效时长,来清理同一数据标识对应的总线数据,此部分属于现有技术,对于总线数据缓存中的总线数据的清理可参考现有技术,此处不再赘述。另外,协议层用于载入预设解析协议集合。所述预设解析协议集合包括总线数据的数据标识、所述数据标识对应的字段名称以及每个字段名称对应的解析方式。所述解析方式在解析所述字段名称对应的数据中使用,所述解析方式中包括位置信息和解析协议,其中位置信息用于指示所述字段名称对应的字段数据在与所述数据标识对应的总线数据中的位置,而解析协议则是用于解析所述字段数据的协议。所述解析层用于利用应用线程提供的计算资源,对所述字段名称对应的字段数据进行解析。
具体的,应用线程可通过数据请求接口请求待解析的总线数据中的字段名称。然后利用所述字段名称,在所述预设解析协议集合中查找与所述字段名称对应的数据标识和解析方式,再利用所查找到的数据标识,在总线数据缓存中获取与所述数据标识对应的总线数据。由于总线数据缓存中会存储不同时间段的所述数据标识对应的总线数据,因此可根据所述总线数据对应的时间戳,提取与所述数据标识对应的最新的总线数据。在将与所述数据标识对应的总线数据以及所述解析方式返回给数据请求接口后,由于与所述数据标识对应的总线数据中包括了多个字段数据,因此要获取请求的字段名称对应的字段数据的解析结果,就需要根据解析方式中的位置信息,找到所述字段数据,即在与所述数据标识对应的总线数据中提取所述字段名称对应的字段数据,然后根据所述解析方式中的解析协议对所述字段数据进行解析,得到与所述字段名称对应的字段数据的解析结果。
其中,若是用于解析总线数据中的字段数据的解析协议有修订或变更的,可直接在所述预设解析协议集合中进行更改。
下面以两个应用线程请求数据解析为例描述本发明实施例。如图4所示,应用线程1请求字段名称为“转速”的字段数据进行解析,在预设解析协议集合中查找与所述字段名称“转速”对应的数据标识“0x100”和解析方式3,然后在总线数据缓存中查找与所述数据标识“0x100”对应的总线数据,然后由应用线程1利用其自身计算资源,根据解析方式3得到“0x100”对应的总线数据中字段名称为“转速”的字段数据的解析结果。由于解析时利用的资源由应用线程自己提供,因此,其它应用线程的数据请求与解析不受干扰,可同时进行。例如,应用线程2也可同时请求字段名称为“油量”的字段数据进行解析,在预设解析协议集合中查找与所述字段名称“油量”对应的数据标识“0x200”和解析方式6,然后在总线数据缓存中查找与所述数据标识“0x200”对应的总线数据,然后由应用线程2利用其自身计算资源,根据解析方式6得到“0x200”对应的总线数据中字段名称为“油量”的字段数据的解析结果。
通过上述实施例,解析数据时由应用线程提供计算资源,减少系统计算资源的占用,实现灵活的计算资源的调配。另外仅解析需求的字段数据,节约计算资源。总线数据缓存中仅缓存原始数据,而无需存储解析结果,节约存储空间。多个应用线程可同时进行数据请求和解析,互不干扰,无在线等待的问题。
相应的,图5是本发明实施例提供的一种总线数据解析装置的结构示意图。如图5所示,所述装置包括:获取模块51,用于获取待解析的总线数据中的字段名称;第一查找模块52,用于在预设解析协议集合中查找与所述字段名称对应的数据标识和解析方式;第二查找模块53,用于在总线数据缓存中查找与所述数据标识对应的总线数据;解析模块54,用于根据与所述数据标识对应的总线数据与所述解析方式,解析得到与所述字段名称对应的字段数据的解析结果。
其中,所述预设解析协议集合包括总线数据的数据标识、所述数据标识对应的字段名称以及每个字段名称对应的解析方式。
进一步地,所述第二查找模块还用于在总线数据缓存中获取与所述数据标识对应的总线数据;根据获取的总线数据对应的时间戳,查找与所述数据标识对应的最新的总线数据。
另外,所述解析模块还用于根据所述解析方式中的位置信息,在与所述数据标识对应的总线数据中提取所述字段名称对应的字段数据,所述位置信息用于指示所述字段名称对应的字段数据在与所述数据标识对应的总线数据中的位置;根据所述解析方式中的解析协议对所述字段数据进行解析,得到与所述字段名称对应的字段数据的解析结果。
上述总线数据解析装置的具体操作过程,可参见上述总线数据解析方法的实现过程。
相应的,本发明实施例还提供一种存储介质,所述存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例所述的总线数据解析方法。
以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。
此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。
Claims (9)
1.一种总线数据解析方法,其特征在于,包括:
获取多个应用线程对应请求的待解析的总线数据中的字段名称;
在预设解析协议集合中查找与所述字段名称对应的数据标识和解析方式;
在总线数据缓存中查找与所述数据标识对应的总线数据;
根据与所述数据标识对应的总线数据与所述解析方式,利用所述多个应用线程对应解析得到与所述字段名称对应的字段数据的解析结果。
2.根据权利要求1所述的方法,其特征在于,所述预设解析协议集合包括总线数据的数据标识、所述数据标识对应的字段名称以及每个字段名称对应的解析方式。
3.根据权利要求1所述的方法,其特征在于,所述在总线数据缓存中查找与所述数据标识对应的总线数据包括:
在总线数据缓存中获取与所述数据标识对应的总线数据;
根据获取的总线数据对应的时间戳,查找与所述数据标识对应的最新的总线数据。
4.根据权利要求1所述的方法,其特征在于,所述根据与所述数据标识对应的总线数据与所述解析方式,解析得到与所述字段名称对应的字段数据的解析结果包括:
根据所述解析方式中的位置信息,在与所述数据标识对应的总线数据中提取所述字段名称对应的字段数据,所述位置信息用于指示所述字段名称对应的字段数据在与所述数据标识对应的总线数据中的位置;
根据所述解析方式中的解析协议对所述字段数据进行解析,得到与所述字段名称对应的字段数据的解析结果。
5.一种总线数据解析装置,其特征在于,包括:
获取模块,用于获取多个应用线程对应请求的待解析的总线数据中的字段名称;
第一查找模块,用于在预设解析协议集合中查找与所述字段名称对应的数据标识和解析方式;
第二查找模块,用于在总线数据缓存中查找与所述数据标识对应的总线数据;
解析模块,用于根据与所述数据标识对应的总线数据与所述解析方式,利用所述多个应用线程对应解析得到与所述字段名称对应的字段数据的解析结果。
6.根据权利要求5所述的装置,其特征在于,所述预设解析协议集合包括总线数据的数据标识、所述数据标识对应的字段名称以及每个字段名称对应的解析方式。
7.根据权利要求5所述的装置,其特征在于,所述第二查找模块还用于在总线数据缓存中获取与所述数据标识对应的总线数据;根据获取的总线数据对应的时间戳,查找与所述数据标识对应的最新的总线数据。
8.根据权利要求5所述的装置,其特征在于,所述解析模块还用于根据所述解析方式中的位置信息,在与所述数据标识对应的总线数据中提取所述字段名称对应的字段数据,所述位置信息用于指示所述字段名称对应的字段数据在与所述数据标识对应的总线数据中的位置;根据所述解析方式中的解析协议对所述字段数据进行解析,得到与所述字段名称对应的字段数据的解析结果。
9.一种存储介质,其特征在于,所述存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如权利要求1-4任一项所述的总线数据解析方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811428027.5A CN109542806B (zh) | 2018-11-27 | 2018-11-27 | 总线数据解析方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811428027.5A CN109542806B (zh) | 2018-11-27 | 2018-11-27 | 总线数据解析方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109542806A CN109542806A (zh) | 2019-03-29 |
CN109542806B true CN109542806B (zh) | 2020-07-24 |
Family
ID=65850514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811428027.5A Active CN109542806B (zh) | 2018-11-27 | 2018-11-27 | 总线数据解析方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109542806B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116737172B (zh) * | 2023-08-11 | 2023-12-12 | 杭州初灵信息技术股份有限公司 | 一种小颗粒数据包的解析系统和方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102009026995A1 (de) * | 2009-06-17 | 2011-03-31 | Robert Bosch Gmbh | Verfahren zum Betreiben eines Bussystems, insbesondere eines CAN-Busses |
CN104393966B (zh) * | 2014-10-10 | 2017-12-12 | 宁波三星智能电气有限公司 | 一种can总线通信方法 |
CN105049546B (zh) * | 2015-06-25 | 2018-12-21 | 瑞斯康达科技发展股份有限公司 | 一种dhcp服务器为客户端分配ip地址的方法及装置 |
CN108429738B (zh) * | 2018-02-11 | 2021-02-02 | 中车青岛四方机车车辆股份有限公司 | 一种数据解析方法及解析平台 |
-
2018
- 2018-11-27 CN CN201811428027.5A patent/CN109542806B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109542806A (zh) | 2019-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20170123336A (ko) | 파일 조작 방법 및 장치 | |
CN109167840B (zh) | 一种任务推送方法、节点自治服务器及边缘缓存服务器 | |
US10031843B2 (en) | Managing memory in a computer system | |
CN108197160B (zh) | 一种图片加载方法及装置 | |
CN110427386B (zh) | 数据处理方法、装置及计算机存储介质 | |
CN103631623A (zh) | 一种集群系统中部署应用软件的方法及装置 | |
CN104572845A (zh) | 文件分发方法、装置、设备及系统 | |
CN113419824A (zh) | 数据处理方法、装置、系统及计算机存储介质 | |
CN111737564A (zh) | 一种信息查询方法、装置、设备及介质 | |
CN111949389B (zh) | 基于Slurm的信息采集方法和装置、服务器、计算机可读存储介质 | |
CN110278101B (zh) | 一种资源管理方法及设备 | |
CN113961832A (zh) | 页面渲染的方法、装置、设备、存储介质及程序产品 | |
CN108154024B (zh) | 一种数据检索方法、装置及电子设备 | |
KR20210040864A (ko) | 파일 디렉터리 순회 방법, 장치, 기기, 매체 및 컴퓨터 프로그램 | |
CN109542806B (zh) | 总线数据解析方法、装置及存储介质 | |
CN111831691B (zh) | 一种数据读写方法及装置、电子设备、存储介质 | |
CN111913917A (zh) | 一种文件处理方法、装置、设备和介质 | |
CN107277087B (zh) | 数据处理方法及装置 | |
CN113626449A (zh) | 数据存储、数据查询方法及相关设备 | |
CN104144170A (zh) | 网页地址的过滤方法、装置和系统 | |
CN103530369A (zh) | 一种去重方法及系统 | |
CN110765392A (zh) | 数据的加载方法及装置、存储介质、终端 | |
CN114637969A (zh) | 目标对象的鉴权方法及装置 | |
CN110389966B (zh) | 一种信息处理方法及装置 | |
CN111124923B (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 |