CN116132558A - 一种数据解析方法、装置、电子设备和存储介质 - Google Patents
一种数据解析方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN116132558A CN116132558A CN202310088162.4A CN202310088162A CN116132558A CN 116132558 A CN116132558 A CN 116132558A CN 202310088162 A CN202310088162 A CN 202310088162A CN 116132558 A CN116132558 A CN 116132558A
- Authority
- CN
- China
- Prior art keywords
- message
- packet
- analysis
- preset
- stored
- 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
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000007405 data analysis Methods 0.000 title claims abstract description 18
- 238000004458 analytical method Methods 0.000 claims abstract description 114
- 238000004590 computer program Methods 0.000 claims description 7
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000011217 control strategy Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
Images
Classifications
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40208—Bus networks characterized by the use of a particular bus standard
- H04L2012/40215—Controller Area Network CAN
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40267—Bus for use in transportation systems
- H04L2012/40273—Bus for use in transportation systems the transportation system being a vehicle
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开一种数据解析方法、装置、电子设备和存储介质,所述方法包括接收CAN报文;根据预设的各第一结构体中存储的CAN报文ID对接收到的CAN报文进行分类,获得与车辆的各功能模块一一对应的报文包;其中,所述各第一结构体中存储的CAN报文ID依据车辆的功能模块所需的CAN报文ID确定;根据预设的各第二结构体中存储的解析参数确定所述报文包中的各CAN报文的解析参数;其中,所述预设的各第二结构体中存储的解析参数是通过对与所述车辆关联的DBC文件进行解析获得的;基于所述解析参数对所述报文包中的CAN报文进行解析,获得解析结果。本发明提高了数据解析便捷性和效率,减少了出错概率。
Description
技术领域
本申请涉及自动驾驶数据解析技术领域,具体涉及一种数据解析方法、装置、电子设备和存储介质。
背景技术
车载信号通讯一般采取CAN通讯协议,CAN通信是一种实时、可靠、简单的网络通信,大量运用于工业制造、车辆、机器人等电子电气行业。
传统解析CAN报文的方式是,根据通讯矩阵(Excel表)中记录的报文相关信息,对接收到的CAN报文数据(8字节数据)进行移位和转换得到对应信号的物理值,但该种解析方式的出错率较高。
有鉴于此,特提出本发明。
发明内容
以下给出一个或多个方面的简要概述以提供对这些方面的基本理解。此概述不是所有构想到的方面的详尽综览,并且既非旨在指认出所有方面的关键性或决定性要素亦非试图界定任何或所有方面的范围。其唯一的目的是要以简化形式给出一个或多个方面的一些概念以为稍后给出的更加详细的描述之序。
鉴于现有技术中的手动处理易出错、硬盘文件的读写交互的灵活性差和适配不同车型定制开发等问题,本申请旨在提供一种数据解析方法,降低了数据解析的出错风险,提高了数据解析的便捷性和解析效率。
第一方面,本发明提供了一种数据解析方法,包括以下步骤:
接收CAN报文;
根据预设的各第一结构体中存储的CAN报文ID对接收到的CAN报文进行分类,获得与车辆的各功能模块一一对应的报文包;其中,所述各第一结构体中存储的CAN报文ID依据车辆的功能模块所需的CAN报文ID确定;
根据预设的各第二结构体中存储的解析参数确定所述报文包中的各CAN报文的解析参数;其中,所述预设的各第二结构体中存储的解析参数是通过对与所述车辆关联的DBC文件进行解析获得的;
基于所述解析参数对所述报文包中的CAN报文进行解析,获得解析结果。
进一步的,所述根据预设的各第一结构体中存储的CAN报文ID对接收到的CAN报文进行分类,获得与车辆的各功能模块一一对应的报文包,包括:
将与一第一结构体中存储的CAN报文ID对应的至少一个CAN报文划分到一个报文包,将与另一第一结构体中存储的CAN报文ID对应的至少一个CAN报文划分到另一个报文包。
进一步的,所述根据预设的各第二结构体中存储的解析参数确定所述报文包中的各CAN报文的解析参数,包括:
确定所述报文包中的一CAN报文的ID;
根据所述一CAN报文的ID确定一第二结构体;
将所述一第二结构体中存储的解析参数确定为所述一CAN报文的解析参数。
进一步的,所述基于所述解析参数对所述报文包中的CAN报文进行解析,获得解析结果,包括:
基于所述一CAN报文的解析参数对所述一CAN报文进行解析,获得所述一CAN报文的解析结果。
进一步的,所述根据预设的各第二结构体中存储的解析参数确定所述报文包中的各CAN报文的解析参数之前,所述方法还包括:
基于设定规则对所述报文包进行判断,以确定所述报文包是否符合设定条件,在确定所述报文包符合设定条件时,继续执行所述根据预设的各第二结构体中存储的解析参数确定所述报文包中的各CAN报文的解析参数的步骤。
进一步的,所述基于设定规则对所述报文包进行判断,以确定所述报文包是否符合设定条件,包括:
确定所述报文包中是否存在预设的结束报文,若存在预设的结束报文,则确定所述报文包符合设定条件;
或者,确定所述报文包中报文的个数是否为预设值且相邻报文的接收时刻之间的间隔小于阈值,则确定所述报文包符合设定条件。
进一步的,所述功能模块包括速度感知模块、位置感知模块、路径规划模块以及决策模块中的一种或多种;
所述解析结果包括车辆的速度数据、位置数据、位姿数据中的一种或多种;
所述接收CAN报文,包括:
通过多个不同的线程从CAN总线分别接收CAN报文。
第二方面,本发明还提供了一种数据解析装置,包括:
接收模块,用于接收CAN报文;
分类模块,用于根据预设的各第一结构体中存储的CAN报文ID对接收到的CAN报文进行分类,获得与车辆的各功能模块一一对应的报文包;其中,所述各第一结构体中存储的CAN报文ID依据车辆的功能模块所需的CAN报文ID确定;
确定模块,用于根据预设的各第二结构体中存储的解析参数确定所述报文包中的各CAN报文的解析参数;其中,所述预设的各第二结构体中存储的解析参数是通过对与所述车辆关联的DBC文件进行解析获得的;
解析模块,用于基于所述解析参数对所述报文包中的CAN报文进行解析,获得解析结果。
第三方面,本发明还提供一种电子设备,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上所述的数据解析方法。
第四方面,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的数据解析方法。
本发明公开的数据解析方法,通过将从DBC文件中获得的解析参数存储在结构体,使得所述解析参数可被灵活读取并使用,减少了硬盘读取操作,提高了读取效率,进而提高了CAN报文的解析效率,且降低了出错率,针对不同车型的CAN报文,只需要提供对应的DBC文件,而不需要修改CAN报文解析代码,非常地方便和高效地实现了CAN报文的解析。通过依据车辆的功能模块所需的CAN报文ID对接收到的CAN报文进行分类,而后基于分类获得的报文包进行自动解析,有助于提升报文的解析效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据解析方法的流程示意图;
图2为本发明实施例提供的一种CAN报文组包的流程示意图;
图3为本发明实施例提供的一种数据解析方法的流程示意图;
图4为本发明实施例提供的一种数据解析装置的结构示意图;
图5为本发明实施例中的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1为本申请提出的一种数据解析方法的流程示意图,该方法适用于对CAN报文进行解析的情况,典型的,适用于对车辆的不同功能模块之间交互的CAN报文进行解析的情况。所述数据解析方法可由车载电子设备执行,例如具体可以由局域网控制器执行。具体的,该方法包括如下步骤:
S110、接收CAN报文。
其中,自动驾驶汽车装配有多种类型的传感器,例如摄像头、雷达、速度传感器、加速度传感器等,传感器检测到的数据需要传输给对应的功能模块(例如感知模块、避障模块等),对应的功能模块基于传感器检测到的数据执行一定的算法逻辑,例如基于摄像头采集的图像数据确定当前车辆与障碍物之间的距离,进而基于该距离生成控制策略,例如控制当前车辆减速转弯等;再例如基于速度传感器采集的数据确定当前车辆的速度等。因此,传感器检测到的数据需要传输给对应的功能模块,目前多数汽车采用CAN总线通信,即传感器将采集到的数据以CAN报文的形式通过CAN总线传输给对应的功能模块,在传输之前需将采集到的数据进行编码,以将采集到的数据转换为CAN报文,对应的功能模块从CAN总线接收CAN报文,而后对CAN报文进行解析(也可以理解为是解码),获得传感器采集到的真实数据(也可以称为信号的物理值,例如图像数据、速度数据、加速度数据等)。
示例性的,所述CAN报文指车载传感器发送至CAN总线上的数据,也可以是车辆的各控制器之间交互的数据。
S120、根据预设的各第一结构体中存储的CAN报文ID对接收到的CAN报文进行分类,获得与车辆的各功能模块一一对应的报文包;其中,所述各第一结构体中存储的CAN报文ID依据车辆的功能模块所需的CAN报文ID确定。
本文中的“结构体”是指一种数据结构,用于存储有关联关系的数据。本步骤中的第一结构体与车辆的一个功能模块对应,用于存储对应功能模块所需的CAN报文ID。
基于结构体存储的数据,实质是将数据存储在结构体对应的内存中,因此从结构体读取数据相比于从硬盘读取数据的速度较快,如此通过将车辆的功能模块所需的CAN报文ID存储于所述第一结构体中,可使得在需要获取车辆的功能模块所需的CAN报文ID时能够较快地获得。
并且本步骤通过依据车辆的功能模块所需的CAN报文ID对接收到的CAN报文进行分类,可实现准确高效地对接收到的众多CAN报文进行转发。示例性的,所述根据预设的各第一结构体中存储的CAN报文ID对接收到的CAN报文进行分类,获得与车辆的各功能模块一一对应的报文包包括:将与一第一结构体中存储的CAN报文ID对应的至少一个CAN报文,划分到一个报文包,将与另一第一结构体中存储的CAN报文ID对应的至少一个CAN报文划分到另一个报文包。
以功能模块是感知模块为例,假设车辆的感知模块需要获取摄像头采集的数据、设置在车辆前方的前雷达采集的数据以及设置在车辆的四个车角处的角雷达采集的数据,摄像头发送的CAN报文的ID为1,前雷达发送的CAN报文的ID为2,角雷达发送的CAN报文的ID为3,则将1、2和3存储在一第一结构体中,在接收到CAN报文时,依据接收到的CAN报文的ID对接收到的CAN报文进行分类,假设接收到的CAN报文有10个,其中包括ID为1、2、3和4的CAN报文,则将ID为1、2和3的CAN报文划分到一个报文包中,该报文包中的CAN报文是需要发送给车辆的感知模块的报文;将ID为4的CAN报文划分到另一个报文包中。
S130、根据预设的各第二结构体中存储的解析参数确定所述报文包中的各CAN报文的解析参数;其中,所述预设的各第二结构体中存储的解析参数是通过对与所述车辆关联的DBC文件进行解析获得的。
解析参数是用于对CAN报文进行解析以获取其中的物理数据(例如图像数据、速度数据、加速度数据等)所需要的信息,示例性的,所述解析参数包括起始位startBit、长度Length[bit]、字节顺序标记byte order、迭代器所指对象的类型value type等。
这里的“第二结构体”是另外一种数据结构,该数据结构与一个CAN报文的ID对应,用于存储对应ID的CAN报文的解析参数。为了便于区分和描述,将存储CAN报文ID的结构体称为第一结构体,存储解析参数的结构体为第二结构体。示例性的,第一结构体和第二结构体具体可以是package结构体。
示例性的,所述根据预设的各第二结构体中存储的解析参数确定所述报文包中的各CAN报文的解析参数,包括:
确定所述报文包中的一CAN报文的ID;
根据所述一CAN报文的ID确定一第二结构体;
将所述一第二结构体中存储的解析参数确定为所述一CAN报文的解析参数。
具体的,可以根据第二结构体的名称确定与具体的某个CAN报文的ID相对应的第二结构体,也可以根据第二结构体中存储的各数据的字段确定与具体的某个CAN报文的ID相对应的第二结构体。
其中,各传感器供应商提供的传感器所发送的CAN报文的解析规则不同,因此,在对不同的传感器发送的CAN报文进行解析时所使用的解析规则不同,该解析规则(也可以称为解析参数)存储在传感器对应的DBC文件中。基于此,本发明提供的数据解析方法中,首先对车辆关联的多个DBC文件进行解析,以获得用于解析各CAN报文的解析参数,并将该解析参数按照其对应的CAN报文的ID存储于不同的第二结构体中,以方便在对对应的CAN报文进行解析时调用相关的解析参数。例如ID为c95的CAN报文的解析参数为***,则将解析参数***存储在于c95对应的第二结构体中,换言之,不同的ID对应不同的第二结构体,这样设置的好处是方便快速且准确地查找到某个ID对应的解析参数,达到提高解析效率与准确度的目的。
DBC(Database CAN)文件是用来描述控制器局域网络CAN(Controller AreaNetwork)上所有ECU(Electronic Control Unit)节点之间通讯信息的一种文件,包含了CAN总线中协议数据及其所代表的具体意义。DBC文件中对CAN信号长度、ID、数值转换有明确的记录,可以通过计算机语言解析DBC文件,获取CAN报文的解析参数,根据解析参数来解析实际接收到的CAN报文。S140、基于所述解析参数对所述报文包中的CAN报文进行解析,获得解析结果。
示例性的,所述基于所述解析参数对所述报文包中的CAN报文进行解析,获得解析结果,包括:
基于所述一CAN报文的解析参数对所述一CAN报文进行解析,获得所述一CAN报文的解析结果。
其中,解析结果为CAN报文对应的物理数据,例如可以指速度传感器检测到的速度数据、摄像头检测到的图像数据、雷达扫描到的点云数据等。
本发明公开的数据解析方法,通过将从DBC文件中获得的解析参数存储在结构体,使得所述解析参数被存储在结构体对应的内存中,如此可使得解析参数被快速读取并使用,相比于从硬盘读取解析参数,提高了读取速度,进而提高了CAN报文的解析效率,且降低了出错率,针对不同车型的CAN报文,只需要提供对应的DBC文件,而不需要修改CAN报文解析代码,非常地方便和高效地实现了CAN报文的解析。通过依据车辆的功能模块所需的CAN报文ID对接收到的CAN报文进行分类,而后基于分类获得的报文包进行自动解析,有助于提升报文的解析效率。
在一些实施例中,所述根据预设的各第二结构体中存储的解析参数确定所述报文包中的各CAN报文的解析参数之前,所述方法还包括:
基于设定规则对所述报文包进行判断,以确定所述报文包是否符合设定条件,在确定所述报文包符合设定条件时,继续执行所述根据预设的各第二结构体中存储的解析参数确定所述报文包中的各CAN报文的解析参数的步骤。
所述基于设定规则对所述报文包进行判断,以确定所述报文包是否符合设定条件,包括:
确定所述报文包中是否存在预设的结束报文,若存在预设的结束报文,则确定所述报文包符合设定条件;
或者,确定所述报文包中报文的个数是否为预设值且相邻报文的接收时刻之间的间隔小于阈值,则确定所述报文包符合设定条件。
通过确定所述报文包是否符合设定条件,可保证报文包中报文的完整性,进而达到提升报文传输准确度的目的。例如,确定所述报文包中是否存在预设的结束报文,若存在预设的结束报文,则确定所述报文包是完整可靠的。或者,确定所述报文包中报文的个数是否为预设值且相邻报文的接收时刻之间的间隔小于阈值,则确定所述报文包是完整可靠的。
示例性的,所述功能模块包括速度感知模块、位置感知模块、路径规划模块以及决策模块中的一种或多种;
所述解析结果包括车辆的速度数据、位置数据、位姿数据中的一种或多种。进一步的,在一些实施方式中,对与车辆关联的DBC文件进行解析以获得DBC文件中的解析参数的过程为:
根据BO_标志获取CAN报文的ID,根据SG_标志获取CAN报文的信号。DBC文件是文本文件,其中BO_开头的代表CAN报文,同时该行包含报文名称、ID、发布节点等信息。SG_开头的代表CAN报文中的信号,同时该行包含信号的起始位置、字节长度、格式、极值等信息。对于与自动驾驶相关的数据而言,一条CAN报文中,一般包含多个信号信息。使用解析相关的多个DBC文件,可以获取多种CAN报文的解析参数,为实现CAN报文的自动解析提供基础。
进一步的,在一些实施方式中,根据预设的各第一结构体中存储的CAN报文ID对接收到的CAN报文进行分类,获得与车辆的各功能模块一一对应的报文包,包括:
根据预设的各第一结构体中存储的CAN报文ID对接收到的CAN报文进行分类,获得每类下的CAN报文;
针对一类下的CAN报文,基于预设周期组包或者基于预设数量组包,获得该类下的报文包。通过限定组包方式,可保证接收到的CAN报文的完整性与可靠性。
其中,基于预设周期组包具体为,每隔预设周期的时间段将接收到的CAN报文组包。例如预设周期为50ms,则每过50毫秒便将接收到的CAN报文组包一次,获得相应的一个报文包。基于预设数量组包例如是设定10个CAN报文为一帧数据,则按照时间顺序,将每10个CAN报文组成一个报文包。例如摄像头每50ms发送10个CAN报文(0x001,0x002,…,0x00A),组包有两种方式,一种是设置周期例如20ms,每过20ms便将接收到的CAN报文组包。另一种是等待摄像头的10个CAN报文都接收到了之后再组包,如图2所示,例如在接收摄像头发出的CAN报文时,会判断0x001,0x002,…,0x00A这10个报文有没有接收完毕,如果接收完毕就可以将这10个长度为8字节的CAN报文存入数组vector中。两种方式分别对应不同的应用场景,例如第一种适合需要快速将不同周期的CAN报文组包的情况,则根据设定周期快速更新接收到的CAN报文。第二种适合于不是很紧急但需要接收各种传感器数据的情况,因为每一种传感器的数据的发送周期不固定,那么在接收的时候只要等所有CAN报文都接收到了便可以组成一包数据。综上,不管哪种组包方式,都是为了方便实时更新数据。
本发明的数据解析方法中,通过解析DBC文件,从DBC文件中获取每个CAN报文的ID以及对应的解析参数,并将解析参数存储于结构体中,便于对解析参数的查找与调用,达到提高解析效率与准确度的目的。
具体的,在对CAN报文进行解析时,只需从对应的第二结构体中查找到对应的解析参数,将该解析参数作为解析模块的输入即可完成报文解析,而无需针对每个ID的CAN报文预先编写解析代码。同时,不需要关注DBC文件是哪个供应商提供的或者是针对哪款车型的,这也是因为DBC文件是按照规定的协议生成的文本文件,从行首获取每行的信息便能够提取到需要的CAN报文的解析参数。本发明提供的解析方式具备效率高、准确度高且适用范围广的优势。
在一些实施方式中,参考如图3所示的一种数据解析方法的流程示意图,假设传输的CAN报文有从车辆的摄像头发出的、从车辆的前雷达(设置在车辆前方的某一雷达)发出的、从车辆的角雷达(设置在车辆的四个角上的雷达)发出的、从激光雷达发出的以及整车控制器发出的等,假设每个传感器均发送10个ID的CAN报文,在接收到CAN报文后,根据预设的各第一结构体中存储的CAN报文ID对接收到的CAN报文进行分类。如果某一第一结构体中存储的CAN报文ID为一种,则将该种ID的报文划分为一类;如果某一第一结构体中存储的CAN报文ID为多种,则将多种ID的报文划分为一类。某一第一结构体中存储的CAN报文ID具体是一种还是多种根据该第一结构体所对应的车辆的功能模块所需的CAN报文确定。在符合预设条件(例如指定的10个ID的报文均接收到、周期20ms到达时)时将归到每一类下的CAN报文临时存储在数组vector中,然后对数组vector中的报文包进行解析,并将解析后获得的数据发送给对应的功能模块。
在上述各实施例的基础上,所述接收CAN报文包括:通过多个不同的线程从CAN总线分别接收CAN报文,以提高CAN报文的接收实时性与接收效率。
图4是本发明实施例提供的一种数据解析装置的结构示意图,该装置包括:接收模块410、分类模块420、确定模块430和解析模块440;
其中,接收模块410,用于接收CAN报文;分类模块420,用于根据预设的各第一结构体中存储的CAN报文ID对接收到的CAN报文进行分类,获得与车辆的各功能模块一一对应的报文包;其中,所述各第一结构体中存储的CAN报文ID依据车辆的功能模块所需的CAN报文ID确定;确定模块430,用于根据预设的各第二结构体中存储的解析参数确定所述报文包中的各CAN报文的解析参数;其中,所述预设的各第二结构体中存储的解析参数是通过对与所述车辆关联的DBC文件进行解析获得的;解析模块440,用于基于所述解析参数对所述报文包中的CAN报文进行解析,获得解析结果。
进一步的,分类模块420具体用于:将与一第一结构体中存储的CAN报文ID对应的至少一个CAN报文,划分到一个报文包,将与另一第一结构体中存储的CAN报文ID对应的至少一个CAN报文划分到另一个报文包。
进一步的,确定模块430具体包括:第一确定单元,用于确定所述报文包中的一CAN报文的ID;第二确定单元,用于根据所述一CAN报文的ID确定一第二结构体;第三确定单元,用于将所述一第二结构体中存储的解析参数确定为所述一CAN报文的解析参数。
进一步的,解析模块440具体用于:基于所述一CAN报文的解析参数对所述一CAN报文进行解析,获得所述一CAN报文的解析结果。
进一步的,还包括判断模块,用于在所述根据预设的各第二结构体中存储的解析参数确定所述报文包中的各CAN报文的解析参数之前,基于设定规则对所述报文包进行判断,以确定所述报文包是否符合设定条件,在确定所述报文包符合设定条件时,继续执行所述根据预设的各第二结构体中存储的解析参数确定所述报文包中的各CAN报文的解析参数的步骤。
进一步的,所述判断模块具体用于:确定所述报文包中是否存在预设的结束报文,若存在预设的结束报文,则确定所述报文包符合设定条件;
或者,确定所述报文包中报文的个数是否为预设值且相邻报文的接收时刻之间的间隔小于阈值,则确定所述报文包符合设定条件。
进一步的,所述功能模块包括速度感知模块、位置感知模块、路径规划模块以及决策模块中的一种或多种;所述解析结果包括车辆的速度数据、位置数据、位姿数据中的一种或多种;
进一步的,接收模块410用于通过多个不同的线程从CAN总线分别接收CAN报文。
本公开实施例提供的数据解析装置,可执行本公开方法实施例所提供的定位方法中的步骤,具备执行步骤和有益效果此处不再赘述。
图5为本公开实施例中的一种电子设备的结构示意图。下面具体参考图5,其示出了适于用来实现本公开实施例中的电子设备500的结构示意图。图5示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图5所示,电子设备500可以包括处理装置(例如中央处理器、图形处理器等)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储装置508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理以实现如本公开所述的实施例的方法。在RAM 503中,还存储有电子设备500操作所需的各种程序和数据。处理装置501、ROM502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码,从而实现如上所述的定位方法。在这样的实施例中,该计算机程序可以通过通信装置509从网络上被下载和安装,或者从存储装置508被安装,或者从ROM 502被安装。在该计算机程序被处理装置501执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:独权内容。
可选的,当上述一个或者多个程序被该电子设备执行时,该电子设备还可以执行上述实施例所述的其他步骤。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。以上所述仅是本申请的优选实施方式,应当指出,由于文字表达的有限性,而客观上存在无限的具体结构,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进、润饰或变化,也可以将上述技术特征以适当的方式进行组合;这些改进润饰、变化或组合,或未经改进将发明的构思和技术方案直接应用于其他场合的,均应视为本申请的保护范围。
Claims (10)
1.一种数据解析方法,其特征在于,包括:
接收CAN报文;
根据预设的各第一结构体中存储的CAN报文ID对接收到的CAN报文进行分类,获得与车辆的各功能模块一一对应的报文包;其中,所述各第一结构体中存储的CAN报文ID依据车辆的功能模块所需的CAN报文ID确定;
根据预设的各第二结构体中存储的解析参数确定所述报文包中的各CAN报文的解析参数;其中,所述预设的各第二结构体中存储的解析参数是通过对与所述车辆关联的DBC文件进行解析获得的;
基于所述解析参数对所述报文包中的CAN报文进行解析,获得解析结果。
2.根据权利要求1所述的方法,其特征在于,所述根据预设的各第一结构体中存储的CAN报文ID对接收到的CAN报文进行分类,获得与车辆的各功能模块一一对应的报文包,包括:
将与一第一结构体中存储的CAN报文ID对应的至少一个CAN报文,划分到一个报文包,将与另一第一结构体中存储的CAN报文ID对应的至少一个CAN报文划分到另一个报文包。
3.根据权利要求1所述的方法,其特征在于,所述根据预设的各第二结构体中存储的解析参数确定所述报文包中的各CAN报文的解析参数,包括:
确定所述报文包中的一CAN报文的ID;
根据所述一CAN报文的ID确定一第二结构体;
将所述一第二结构体中存储的解析参数确定为所述一CAN报文的解析参数。
4.根据权利要求3所述的方法,其特征在于,所述基于所述解析参数对所述报文包中的CAN报文进行解析,获得解析结果,包括:
基于所述一CAN报文的解析参数对所述一CAN报文进行解析,获得所述一CAN报文的解析结果。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述根据预设的各第二结构体中存储的解析参数确定所述报文包中的各CAN报文的解析参数之前,所述方法还包括:
基于设定规则对所述报文包进行判断,以确定所述报文包是否符合设定条件,在确定所述报文包符合设定条件时,继续执行所述根据预设的各第二结构体中存储的解析参数确定所述报文包中的各CAN报文的解析参数的步骤。
6.根据权利要求5所述的方法,其特征在于,所述基于设定规则对所述报文包进行判断,以确定所述报文包是否符合设定条件,包括:
确定所述报文包中是否存在预设的结束报文,若存在预设的结束报文,则确定所述报文包符合设定条件;
或者,确定所述报文包中报文的个数是否为预设值且相邻报文的接收时刻之间的间隔小于阈值,则确定所述报文包符合设定条件。
7.根据权利要求1-4任一项所述的方法,其特征在于,所述功能模块包括速度感知模块、位置感知模块、路径规划模块以及决策模块中的一种或多种;
所述解析结果包括车辆的速度数据、位置数据、位姿数据中的一种或多种;
所述接收CAN报文,包括:
通过多个不同的线程从CAN总线分别接收CAN报文。
8.一种数据解析装置,其特征在于,包括:
接收模块,用于接收CAN报文;
分类模块,用于根据预设的各第一结构体中存储的CAN报文ID对接收到的CAN报文进行分类,获得与车辆的各功能模块一一对应的报文包;其中,所述各第一结构体中存储的CAN报文ID依据车辆的功能模块所需的CAN报文ID确定;
确定模块,用于根据预设的各第二结构体中存储的解析参数确定所述报文包中的各CAN报文的解析参数;其中,所述预设的各第二结构体中存储的解析参数是通过对与所述车辆关联的DBC文件进行解析获得的;
解析模块,用于基于所述解析参数对所述报文包中的CAN报文进行解析,获得解析结果。
9.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310088162.4A CN116132558A (zh) | 2023-02-03 | 2023-02-03 | 一种数据解析方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310088162.4A CN116132558A (zh) | 2023-02-03 | 2023-02-03 | 一种数据解析方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116132558A true CN116132558A (zh) | 2023-05-16 |
Family
ID=86311429
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310088162.4A Pending CN116132558A (zh) | 2023-02-03 | 2023-02-03 | 一种数据解析方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116132558A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106817366A (zh) * | 2016-12-31 | 2017-06-09 | 惠州市蓝微新源技术有限公司 | 一种can文件解析及重新保存方法 |
CN107132832A (zh) * | 2016-02-29 | 2017-09-05 | 株洲南车时代电气股份有限公司 | 一种基于can通讯的dbc文件解析及其程序设计方法 |
CN110162008A (zh) * | 2019-05-10 | 2019-08-23 | 中国汽车技术研究中心有限公司 | 一种新能源车辆can总线解析方法 |
WO2021004536A1 (zh) * | 2019-07-10 | 2021-01-14 | 深圳市中兴微电子技术有限公司 | 报文解析方法和装置 |
US20210029148A1 (en) * | 2019-07-25 | 2021-01-28 | Battellle Memorial Institute | Can bus protection systems and methods |
CN114979314A (zh) * | 2022-06-30 | 2022-08-30 | 重庆长安新能源汽车科技有限公司 | 一种汽车can数据自动解析方法及系统、计算机可读存储介质、电子设备 |
CN115190188A (zh) * | 2022-06-10 | 2022-10-14 | 珠海广通汽车有限公司 | Can报文解析方法、装置、计算机存储介质及电子设备 |
CN115657521A (zh) * | 2022-09-28 | 2023-01-31 | 重庆长安汽车股份有限公司 | 解析can报文数据的方法、装置、车辆及存储介质 |
-
2023
- 2023-02-03 CN CN202310088162.4A patent/CN116132558A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107132832A (zh) * | 2016-02-29 | 2017-09-05 | 株洲南车时代电气股份有限公司 | 一种基于can通讯的dbc文件解析及其程序设计方法 |
CN106817366A (zh) * | 2016-12-31 | 2017-06-09 | 惠州市蓝微新源技术有限公司 | 一种can文件解析及重新保存方法 |
CN110162008A (zh) * | 2019-05-10 | 2019-08-23 | 中国汽车技术研究中心有限公司 | 一种新能源车辆can总线解析方法 |
WO2021004536A1 (zh) * | 2019-07-10 | 2021-01-14 | 深圳市中兴微电子技术有限公司 | 报文解析方法和装置 |
US20210029148A1 (en) * | 2019-07-25 | 2021-01-28 | Battellle Memorial Institute | Can bus protection systems and methods |
CN115190188A (zh) * | 2022-06-10 | 2022-10-14 | 珠海广通汽车有限公司 | Can报文解析方法、装置、计算机存储介质及电子设备 |
CN114979314A (zh) * | 2022-06-30 | 2022-08-30 | 重庆长安新能源汽车科技有限公司 | 一种汽车can数据自动解析方法及系统、计算机可读存储介质、电子设备 |
CN115657521A (zh) * | 2022-09-28 | 2023-01-31 | 重庆长安汽车股份有限公司 | 解析can报文数据的方法、装置、车辆及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108182817A (zh) | 自动驾驶辅助系统、路侧端辅助系统和车载端辅助系统 | |
CN108334087B (zh) | 一种基于软件定义的平台化高级驾驶辅助系统 | |
US10755565B2 (en) | Prioritized vehicle messaging | |
EP3564853A2 (en) | Obstacle classification method and apparatus based on unmanned vehicle, device, and storage medium | |
CN116170779B (zh) | 一种协同感知数据传输方法、装置及系统 | |
CN109635861B (zh) | 一种数据融合方法、装置、电子设备及存储介质 | |
CN112758031A (zh) | 一种车辆控制系统、车辆控制方法、装置、设备和介质 | |
EP4172707A1 (en) | An edge computing based path planning system for agv with intelligent deviation correction algorithm | |
US11889341B2 (en) | Method and apparatus for managing roadside device in vehicle road cooperation, and cloud control platform system | |
CN114550116A (zh) | 一种对象识别方法和装置 | |
CN116132558A (zh) | 一种数据解析方法、装置、电子设备和存储介质 | |
CN113868875B (zh) | 测试场景自动生成方法、装置、设备和存储介质 | |
EP4386324A1 (en) | Method and apparatus for identifying road information, electronic device, vehicle, and medium | |
CN112966565A (zh) | 一种物体检测方法、装置、终端设备及存储介质 | |
CN113313654A (zh) | 激光点云滤波去噪方法、系统、设备及存储介质 | |
CN109040005B (zh) | Agv小车通讯方法及系统 | |
CN117454316B (zh) | 多传感器的数据融合方法、存储介质及智能设备 | |
CN110896530A (zh) | 传输和接收数据的方法、装置、设备和存储介质 | |
JP7498798B2 (ja) | コンピュータプログラム製品及び人工知能訓練制御デバイス | |
CN116186019B (zh) | 应用于民机航电系统下的功能一体化智能分析方法及装置 | |
CN112784628B (zh) | 轨迹预测方法、用于轨迹预测的神经网络训练方法及装置 | |
US20230093511A1 (en) | Perception processing with multi-level adaptive data processing flow rate control | |
CN116653935B (zh) | 一种车辆运行安全辅助方法以及相关设备 | |
CN117579414A (zh) | 超声波数据处理方法、装置、系统、车辆及存储介质 | |
CN116708418A (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 |