CAN数据存储方法、装置、服务器及车辆与流程

文档序号:16364613发布日期:2018-12-22 08:21阅读:475来源:国知局
CAN数据存储方法、装置、服务器及车辆与流程

本公开的实施例涉及通信技术领域,尤其涉及一种can数据存储方法、装置、服务器及车辆。

背景技术

车辆在行驶过程中,会产生大量的can(controllerareanetwork,控制器局域网络)数据,例如发动机控制器can数据、车门控制器can数据、电机控制器can数据等。目前,can数据通常是不做任何处理地存储于车载终端或远程发送至云端服务器存储,导致can数据会占用较大的存储空间,造成车载终端或服务器存储空间的浪费。



技术实现要素:

本公开的实施例提供了一种can数据存储方法、装置、服务器及车辆,解决了现有的can数据不经处理而需要占用较大的存储空间的问题。

第一方面,本公开的实施例提供了一种can数据存储方法,包括:

获取can数据,并判断所述can数据中是否存在连续重复数据;所述连续重复数据为所述can数据中连续的且数据信息相同的同一类报文数据;

若所述can数据中存在连续重复数据,对所述连续重复数据执行删除操作,以获得can更新数据;所述删除操作为:删除至仅保留所述连续重复数据中的一条报文数据;

将所述can更新数据压缩后存储。

在一些实施例中,所述判断所述can数据中是否存在连续重复数据的步骤,包括:

获取所述can数据中每一条报文数据的数据信息;其中,所述数据信息包括报文标识码、报文长度及报文内容中的至少一种;

判断所述报文数据的数据信息是否与其具有相同报文标识码的前一条报文数据的数据信息相同;

所述若所述can数据中存在连续重复数据,对所述连续重复数据执行删除操作的步骤,包括:

若所述报文数据的数据信息与其具有相同报文标识码的前一条报文数据的数据信息相同,将所述报文数据和所述与其具有相同报文标识码的前一条报文数据中的任意一者删除。

在一些实施例中,所述方法还包括:

根据接收的还原指令,对删除的报文数据进行还原。

在一些实施例中,所述对删除的报文数据进行还原的步骤,包括:

获取所述can更新数据中相邻的两个同一类报文数据的时间信息;

根据报文数据的生成周期计算所述时间信息之间的被删除报文数据的时间戳;

根据所述被删除报文数据的时间戳获取被删除报文数据,并还原。

在一些实施例中,所述获取can数据之前,还包括:

获取can原始数据,将所述can原始数据中的每一条报文数据的数据信息删减至只包括报文标识码、报文长度及报文内容,以获得所述can数据。

在一些实施例中,所述方法还包括:

将存储的所述can更新数据发送至服务器。

第二方面,本公开的实施例还提供一种can数据存储方法,应用于服务器,包括:

获取车辆发送的can更新数据;所述can更新数据是通过将车辆can数据中的连续重复数据删除至剩下所述连续重复数据中的一条而获得;所述连续重复数据为所述can数据中连续的且数据信息相同的同一类报文数据;

存储所述can更新数据。

第三方面,本公开的实施例还提供了一种can数据存储装置,包括:

判断模块,用于获取can数据,并判断所述can数据中是否存在连续重复数据;所述连续重复数据为所述can数据中连续的且数据信息相同的同一类报文数据;

更新模块,用于若所述can数据中存在连续重复数据,对所述连续重复数据执行删除操作,以获得can更新数据;所述删除操作为:删除至仅保留所述连续重复数据中的一条报文数据;

第一存储模块,用于将所述can更新数据压缩后存储。

在一些实施例中,所述判断模块还用于:

获取所述can数据中每一条报文数据的数据信息;其中,所述数据信息包括报文标识码、报文长度及报文内容中的至少一种;

判断所述报文数据的数据信息是否与其具有相同报文标识码的前一条报文数据的数据信息相同;

所述更新模块还用于:若所述报文数据的数据信息与其具有相同报文标识码的前一条报文数据的数据信息相同,将所述报文数据和所述具有相同报文标识码的前一条报文数据中的任意一者删除。

在一些实施例中,所述装置还包括:

还原模块,用于根据接收的还原指令,对删除的报文数据进行还原。

在一些实施例中,所述还原模块包括:

获取子模块,用于获取所述can更新数据中相邻的两个同一类报文数据的时间信息;

计算子模块,用于根据报文数据的生成周期计算所述时间信息之间的被删除报文数据的时间戳;

还原子模块,用于根据所述被删除报文数据的时间戳获取被删除报文数据,并还原。

在一些实施例中,所述装置还包括:

删减模块,用于获取can原始数据,将所述can原始数据中的每一条报文数据的数据信息删减至只包括报文标识码、报文长度及报文内容,以获得所述can数据。

在一些实施例中,所述装置还包括:

发送模块,用于将存储的所述can更新数据发送至服务器。

第四方面,本公开的实施例还提供了一种服务器,包括:

获取模块,用于获取车辆发送的can更新数据;所述can更新数据是通过将车辆can数据中的连续重复数据删除至剩下所述连续重复数据中的一条而获得;所述连续重复数据为所述can数据中连续的且数据信息相同的同一类报文数据;

第二存储模块,用于存储所述can更新数据。

第五方面,本公开的实施例还提供了一种车辆,包括如第三方面中所述的can数据存储装置。

第六方面,本公开的实施例还提供了一种服务器,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如第二方面中所述的can数据存储方法的步骤。

本公开的实施例中,通过获取can数据,并当所述can数据中存在连续重复数据时,对所述连续重复数据执行删除操作,以获得can更新数据,并将所述can更新数据压缩后存储。这样,对can数据中的连续重复数据删除至只保留其中的一条,降低了报文数据的存储空间,也减少了后续对报文数据分析的计算资源,简化了后续对报文数据的分析计算。

附图说明

为了更清楚地说明本公开的实施例的技术方案,下面将对本公开的实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本公开的实施例提供的一种can数据存储方法的流程图;

图2是本公开的实施例提供的另一种can数据存储方法的流程图;

图3是本公开的实施例提供的一种can数据存储装置的结构图;

图4是本公开的实施例提供的一种服务器的结构图。

具体实施方式

下面将结合本公开的实施例中的附图,对本公开的实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于本公开的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。

请参照图1,图1是本公开的实施例提供的一种can数据存储方法的流程图,如图1所示,包括以下步骤:

步骤101、获取can数据,并判断所述can数据中是否存在连续重复数据。

需要说明的是,所述连续重复数据为所述can数据中连续的且数据信息相同的同一类报文数据。同一类报文数据是指车辆上同一个电子控制器(ecu)生成的报文数据,如发动机控制器报文数据为一类,车门控制器报文数据为一类,空调控制器报文数据为一类等。同一类报文数据可以是具有相同的报文标识码,或者是具有相同的报文长度,本公开的实施例中可以是通过报文标识码对报文数据是否为同一类进行判定。所述连续重复数据可以是指具有相同报文标识码的连续的同一类报文数据。

例如,所述can数据中报文标识码的排列顺序为:225、100、c0、235、225等,则其中报文标识码为225的第一个报文数据和报文标识码同样为225的第五个报文数据为连续重复数据;或者,所述连续重复数据还可以是指前后相邻且数据信息相同的同一类报文数据,例如,所述数据信息是指报文标识码,若所述can数据中报文标识码的排列顺序为:225、100、c0、235、225、225、235等,则其中报文标识码为225的第五个报文数据和后一条报文标识码同样为225的第六个报文数据为连续重复数据。

所述数据信息可以是包括所述报文数据的所有信息,如报文标识码、报文长度、报文内容、报文字节数等;或者所述数据信息包括报文标识码、报文长度及报文内容中的至少一种。在获取can数据后,判断所述can数据中是否存在相邻的且数据信息相同的报文数据。

本公开的实施例中,所述步骤101之前还可以包括:

获取can原始数据,将所述can原始数据中的每一条报文数据的数据信息删减至只包括报文标识码、报文长度及报文内容,以获得所述can数据。

例如,所述报文数据存储方法应用于车辆,所述can原始数据可以是指车辆各个电子控制器(ecu)生成的报文数据,如发动机控制器报文数据、车门控制器报文数据、空调控制器报文数据等。可以理解地,所述can原始数据是电子控制器产生的最初始数据,也就是没有经过任何处理的数据,所述can原始数据中的每一条报文数据的数据信息包括报文标识码、报文长度、报文内容、报文字节数等,其中也就包括了一些无用的数据信息,导致can原始数据的信息量较大,需要占用较大的存储空间。

本公开的实施例中,在获取can总线上的can原始数据后,将所述can原始数据中的每一条报文数据的数据信息删减至只包括报文标识码、报文长度及报文内容,以获得所述can数据。这样,也就将所述每一条报文数据中无用的数据信息删除不再保留,缩减了每一条报文数据的信息量,进而减少了can数据的存储空间,也简化了后续对连续重复数据的比对。

可以理解地,所述数据信息包括报文标识码、报文长度及报文内容;则判断所述报文数据中是否存在连续重复数据,也就是判断所述报文数据中是否存在报文标识码、报文长度及报文内容均相同的相邻两条报文数据。当相邻两条报文数据的报文标识码及报文长度相同,但是报文内容不同时,这相邻两条报文数据不能被判定为连续重复数据。

本公开的实施例中,所述判断所述can数据中是否存在连续重复数据的步骤可以包括:

获取所述can数据中每一条报文数据的数据信息;

判断所述报文数据的数据信息是否与其具有相同报文标识码的前一条报文数据的数据信息相同。

可以理解地,所述连续重复数据是指相邻两条报文数据的数据信息相同,那么也就要获取can数据中每一条报文数据的数据信息。例如,所述数据信息包括报文标识码、报文长度及报文内容,也就是要获取每一条报文数据的报文标识码、报文长度及报文内容,并判断所述报文数据的报文标识码、报文长度及报文内容与其相邻的前一条报文数据的报文标识码、报文长度及报文内容是否都相同。只有当相邻的两条报文数据的报文标识码、报文长度及报文内容都相同的情况下,才能判定该相邻的两条报文数据为连续重复数据,只要报文标识码、报文长度及报文内容中的任意一者不相同,都判定该相邻的两条报文数据不是连续重复数据。

可以理解地,所述判断所述can数据中是否存在连续重复数据的步骤,也可以是包括:判断所述报文数据的数据信息是否与其具有相同报文标识码的后一条报文数据的数据信息相同。

步骤102、若所述can数据中存在连续重复数据,对所述连续重复数据执行删除操作,以获得can更新数据。

需要说明的是,所述删除操作为:删除至仅保留所述连续重复数据中的一条报文数据。可以理解地,若所述连续重复数据为n条,则删除其中的n-1条连续重复数据,n为大于1的整数。可以理解地,所述n≥2。例如,当所述连续重复数据为3条,则删除这3条连续重复数据中的任意2条。可以理解地,所述can更新数据中也就不包括连续重复数据。

本公开的实施例中,所述步骤102可以包括:

若所述报文数据的数据信息与其具有相同报文标识码的前一条报文数据的数据信息相同,将所述报文数据和所述与其具有相同报文标识码的前一条报文数据中的任意一者删除,以获得can更新数据。

可以理解地,所述报文数据按照特定的时间周期生成,也就是说,每间隔预设时间则生成一个报文数据。例如,本公开的实施例中所述的报文数据存储方法应用于车辆,车辆的can数据中包括车门控制器报文数据、车身控制器报文数据、空调控制器报文数据、电机控制器报文数据等多个类别。车辆上所有类别的报文数据可以是都为相同的时间生成周期;或者,每一个类别的报文数据可以是有特定的时间生成周期,如车门控制器报文数据为每10ms生成一个。例如,当车辆处于行驶状态时,车门长时间处于关闭状态,则所述车门控制器报文数据中就会包含大量的连续重复数据。

若所述数据信息与其具有相同报文标识码的前一条报文数据的数据信息相同,则将所述报文数据删除,以保留所述与其具有相同报文标识码的前一条报文数据;也就是说,当所述can数据中存在连续重复数据,将所述连续重复数据中的生成时间在后的报文数据删除,保留所述连续重复数据中的生成时间最早的报文数据。这样,能够在需要对删除的报文数据进行还原时,根据保留的报文数据及报文数据的生成周期,也就能计算出被删除数据的时间戳,进而以对删除的报文数据进行还原。

步骤103、将所述can更新数据压缩后存储。

需要说明的是,所述压缩可以是参考现有技术中的压缩方式,在此不做赘述。所述can更新数据中也就不包括连续重复数据,进而也就减少了大量的数据占用空间,将所述can更新数据压缩后存储,例如存储于车辆的车载终端中。

需要说明的是,本公开的实施例提供的报文数据存储方法可以是应用于服务器,也就是说,服务器对获取的can数据进行连续重复数据删除操作后,将can更新数据存储,进而减少了服务器的存储空间。

可选的,所述方法还可以是应用于车辆;所述步骤103之后还可以包括:

将存储的所述can更新数据发送至服务器。

需要说明地,车辆与所述服务器之间建立无线连接,如4g网络连接,进而车辆能够将所述can更新数据发送至服务器。车辆可以是将所述can更新数据发送至服务器,车辆还是保留有所述can更新数据,这样,能对can更新数据进行备份存储;或者也可以是将所述can更新数据发送至服务器后,车辆不保留,这样也就能减少车辆的存储空间。

本公开的实施例提供的技术方案中,通过获取can数据,并当所述can数据中存在连续重复数据时,对所述连续重复数据执行删除操作,以获得can更新数据,并将所述can更新数据压缩后存储。这样,对can数据中的连线重复数据删除至只保留其中的一条,降低了报文数据的存储空间,也减少了后续对报文数据分析的计算资源,简化了后续对报文数据的分析计算。

可选地,所述步骤103之后,还可以包括:

根据接收的还原指令,对删除的报文数据进行还原。

需要说明的是,所述删除数据可以只是从保留报文数据的文件夹中被删除,但保留于其他的文件夹中,也就是依然被保留于本地。当接收到还原指令时,则可以根据所述还原指令,将所述删除数据进行还原,也就是被转移存储至用以保留报文数据的文件夹中。

本公开的实施例中,所述根据接收的还原指令,对删除的报文数据进行还原的步骤,可以包括:

获取所述can更新数据中相邻的两个同一类报文数据的时间信息;

根据报文数据的生成周期计算所述时间信息之间的被删除报文数据的时间戳;

根据所述被删除报文数据的时间戳获取被删除报文数据,并还原。

可以理解地,所述报文数据按照特定的时间周期生成,也就是说,每间隔预设时间则生成一个报文数据。当所述can更新数据中相邻的两个同一类报文数据的时间差不等于报文数据的生成周期时,也就说明这两个同一类报文数据中存在被删除报文数据。进而,根据报文数据的生成周期计算相邻的两个同一类报文数据之间的被删除报文数据的时间戳,根据该时间戳也就能从其他文件夹中获取保存的被删除报文数据,并将所述被删除数据还原至报文数据中。

例如,所述can更新数据中相邻的两个同一类报文数据a1和a2的时间差为30ms,而报文数据的生成周期为10ms,进而也就能计算出a1与a2之间存在两个被删除数据;获取a1及a2的时间信息,根据两者的时间信息以及报文数据的生成周期也就能计算出到被删除数据的时间信息,进而获取被删除数据,并进行还原。这样,也就能根据后续分析计算的需要将删除的报文数据进行还原,确保报文数据分析计算的正常进行。

本公开的实施例还提供一种应用于服务器的can数据存储方法,如图2所示,所述can数据存储方法包括:

步骤201、获取车辆发送的can更新数据。

需要说明的是,所述can更新数据是通过将车辆can数据中的连续重复数据删除至剩下所述连续重复数据中的一条而获得;所述连续重复数据为所述can数据中连续的且数据信息相同的同一类报文数据。也就是说,所述服务器获取的车辆发送的can更新数据中不包括连续重复数据,连续重复数据的删除是由车辆已经完成,这样,也就使得can更新数据所需要占用的存储空间更小,节省了服务器的存储空间。本公开的实施例中,所述连续重复数据的删除可以参照上述can数据存储方法实施例的描述,在此不再赘述。

步骤202、存储所述can更新数据。

可以理解地,将获取的所述车辆发送的can更新数据进行存储,所述存储可以是将can更新数据按照一定的格式压缩后进行存储,例如,可以是按照预设时间间隔进行打包压缩后存储;或者也可以是按照车辆的不同控制器类别进行打包压缩后存储。

本公开的实施例中,服务器获取车辆发送的can更新数据,并将所述can更新数据存储;所述can更新数据中部包括连续重复数据,也就节省了服务器的存储空间,便于服务器能接收存储更多的报文数据。

本公开的实施例还提供一种can数据存储装置,如图3所示,所述can数据存储装置300包括:

判断模块301,用于获取can数据,并判断所述can数据中是否存在连续重复数据;所述连续重复数据为所述can数据中连续的且数据信息相同的同一类报文数据;

更新模块302,用于若所述can数据中存在连续重复数据,对所述连续重复数据执行删除操作,以获得can更新数据;所述删除操作为:删除至仅保留所述连续重复数据中的一条报文数据;

第一存储模块303,用于将所述can更新数据压缩后存储。

在一些实施例中,所述判断模块301还用于:

获取所述can数据中每一条报文数据的数据信息;其中,所述数据信息包括报文标识码、报文长度及报文内容中的至少一种;

判断所述报文数据的数据信息是否与其具有相同报文标识码的前一条报文数据的数据信息相同;

所述更新模块302还用于:若所述报文数据的数据信息与其具有相同报文标识码的前一条报文数据的数据信息相同,将所述报文数据和所述具有相同报文标识码的前一条报文数据中的任意一者删除。

在一些实施例中,所述报文数据存储装置300还包括:

还原模块,用于根据接收的还原指令,对删除的报文数据进行还原。

在一些实施例中,所述还原模块包括:

获取子模块,用于获取所述can更新数据中相邻的两个同一类报文数据的时间信息;

计算子模块,用于根据报文数据的生成周期计算所述时间信息之间的被删除报文数据的时间戳;

还原子模块,用于根据所述被删除报文数据的时间戳获取被删除报文数据,并还原。

在一些实施例中,所述报文数据存储装置300还包括:

删减模块,用于获取can数据,将所述can数据中的每一条报文数据的数据信息删减至只包括报文标识码、报文长度及报文内容,以获得所述can数据。

在一些实施例中,所述报文数据存储装置300还包括:

发送模块,用于将存储的所述can更新数据发送至服务器。

本公开的实施例中,报文数据存储装置300通过获取can数据,并当所述can数据中存在连续重复数据时,对所述连续重复数据执行删除操作,以获得can更新数据,并将所述can更新数据压缩后存储。这样,对can数据中的连线重复数据删除至只保留其中的一条,降低了报文数据的存储空间,也减少了后续对报文数据分析的计算资源,简化了后续对报文数据的分析计算。

本公开的实施例提供的can数据存储装置300可以用以执行上述图1中所述的can数据存储方法的步骤,其中的相关概念以及具体实现方式可以参照上述图1中任一项所述的can数据存储方法的描述,在此不再赘述。

本公开的实施例还提供一种车辆,包括如上所述的can数据存储装置,且能达到上述can数据存储装置实施例相同的技术效果,为避免重复,这里不再赘述。

本公开的实施例还提供一种服务器,如图4所示,所述服务器包括:

获取模块401,用于获取车辆发送的can更新数据;所述can更新数据是通过将车辆can数据中的连续重复数据删除至剩下所述连续重复数据中的一条而获得;所述连续重复数据为所述can数据中连续的且数据信息相同的同一类报文数据;

第二存储模块402,用于存储所述can更新数据。

本公开的实施例中,服务器400获取车辆发送的can更新数据,并将所述can更新数据存储;所述can更新数据中部包括连续重复数据,也就节省了服务器400的存储空间,便于服务器400能接收存储更多的报文数据。

本公开的实施例提供的服务器可以用以执行上述图2所述的应用于服务器的can数据存储方法的步骤,其中的相关概念以及具体实现方式可以参照上述图2所述的应用于服务器的can数据存储方法的描述,在此不再赘述。

本公开的实施例还提供一种服务器,包括处理器、存储器及存储在存储器上并可在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述应用于服务器的can数据存储方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

本公开的实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述can数据存储方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(read-onlymemory,简称rom)、随机存取存储器(randomaccessmemory,简称ram)、磁碟或者光盘等。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1