一种车载总线信号的存取方法和装置转让专利

申请号 : CN202210574316.6

文献号 : CN115001894B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 孙华宝曹海成刘振宇

申请人 : 北京经纬恒润科技股份有限公司

摘要 :

本申请提供了车载总线信号的存取方法和装置,方法包括:将采集到的若干车载总线信号的数据点以二进制字节格式存储在对应的数据文件中,以得到数据文件集;在需要读取指定车载总线信号的数据点时,从数据文件集中确定指定车载总线信号对应的数据文件,作为目标数据文件;根据目标数据文件中的数据指针当前指向的数据点的位置和指定时间段,确定数据指针需要移动的字节个数;按照字节个数移动数据指针,判断移动后数据指针指向范围内的数据点是否为指定时间段内的数据点;若是,则对移动后数据指针指向范围内的所有数据点进行解析,得到指定时间段内的所有数据点的解析结果。本申请无需抛弃历史数据且存取速度快,能精确解析指定时间段内的数据点。

权利要求 :

1.一种车载总线信号的存取方法,其特征在于,包括:

将采集到的若干车载总线信号的数据点以二进制字节格式存储在对应的数据文件中,以得到所述若干车载总线信号分别对应的数据文件组成的数据文件集;

在需要读取指定车载总线信号的数据点时,从所述数据文件集中确定所述指定车载总线信号对应的数据文件,作为目标数据文件;

根据所述目标数据文件中的数据指针当前指向的数据点的位置和指定时间段,确定所述数据指针需要移动的字节个数;

按照所述字节个数移动所述数据指针,并判断移动后所述数据指针指向范围内的数据点是否为所述指定时间段内的数据点;

若是,则对移动后所述数据指针指向范围内的所有数据点进行解析,得到所述指定时间段内的所有数据点的解析结果;

所述数据文件中包含对应车载总线信号的唯一标识信息和所述唯一标识信息对应的标识长度;

所述从所述数据文件集中确定所述指定车载总线信号对应的数据文件,作为目标数据文件,包括:针对所述数据文件集中的每个数据文件,从该数据文件中解析出对应车载总线信号的唯一标识信息对应的标识长度,并根据所述对应车载总线信号的唯一标识信息对应的标识长度,从该数据文件中解析出所述对应车载总线信号的唯一标识信息,作为该数据文件对应的唯一标识信息;

根据每个数据文件对应的唯一标识信息,确定所述指定车载总线信号的唯一标识信息对应的数据文件,作为所述目标数据文件。

2.根据权利要求1所述的车载总线信号的存取方法,其特征在于,还包括:若否,则返回执行所述根据所述目标数据文件中的数据指针当前指向的数据点的位置和指定时间段,确定所述数据指针需要移动的字节个数。

3.根据权利要求2所述的车载总线信号的存取方法,其特征在于,所述根据所述目标数据文件中的数据指针当前指向的数据点的位置和指定时间段,确定所述数据指针需要移动的字节个数,包括:根据起始指针当前指向的数据点的位置和所述指定时间段的起始时间,确定所述起始指针需要移动的字节个数;

根据结束指针当前指向的数据点的位置和所述指定时间段的结束时间,确定所述结束指针需要移动的字节个数。

4.根据权利要求3所述的车载总线信号的存取方法,其特征在于,任一数据点中包括采集对应车载总线信号时的时间戳和信号值;

所述根据起始指针当前指向的数据点的位置和所述指定时间段的起始时间,确定所述起始指针需要移动的字节个数,包括:根据所述起始指针当前指向的数据点的位置,确定第一起始数据点,并根据所述第一起始数据点的时间戳,计算所述第一起始数据点处的信号周期,作为起始信号周期;

根据所述起始信号周期、所述起始指针当前指向的数据点的位置和所述指定时间段的起始时间,确定所述起始指针需要移动的字节个数;

所述根据结束指针当前指向的数据点的位置和所述指定时间段的结束时间,确定所述结束指针需要移动的字节个数,包括:根据所述结束指针当前指向的数据点的位置,确定第一结束数据点,并根据所述第一结束数据点的时间戳,计算所述第一结束数据点处的信号周期,作为结束信号周期;

根据所述结束信号周期、所述结束指针当前指向的数据点的位置和所述指定时间段的结束时间,确定所述结束指针需要移动的字节个数。

5.根据权利要求4所述的车载总线信号的存取方法,其特征在于,所述根据所述第一起始数据点的时间戳,计算所述第一起始数据点处的信号周期,包括:计算所述第一起始数据点的后向相邻数据点的时间戳与所述第一起始数据点的时间戳的差值,计算出的差值作为所述第一起始数据点处的信号周期;

所述根据所述第一结束数据点的时间戳,计算所述第一结束数据点处的信号周期,包括:计算所述第一结束数据点的时间戳与所述第一结束数据点的前向相邻数据点的时间戳的差值,计算出的差值作为所述第一结束数据点处的信号周期。

6.根据权利要求4所述的车载总线信号的存取方法,其特征在于,所述根据所述起始信号周期、所述起始指针当前指向的数据点的位置和所述指定时间段的起始时间,确定所述起始指针需要移动的字节个数,包括:确定所述起始指针当前指向的数据点的位置处的时间,并计算所述指定时间段的起始时间与确定出的时间的差值,得到第一差值;

将所述第一差值除以所述起始信号周期,得到的商值作为所述起始指针需要移动的数据点个数;

计算所述起始指针需要移动的数据点个数和数据点占用字节数的乘积,乘积结果作为所述起始指针需要移动的字节个数;

所述根据所述结束信号周期、所述结束指针当前指向的数据点的位置和所述指定时间段的结束时间,确定所述结束指针需要移动的字节个数,包括:确定所述结束指针当前指向的数据点的位置处的时间,并计算所述指定时间段的结束时间与确定出的时间的差值,得到第一差值;

将所述第一差值除以所述结束信号周期,得到的商值作为所述结束指针需要移动的数据点个数;

计算所述结束指针需要移动的数据点个数和所述数据点占用字节数的乘积,乘积结果作为所述结束指针需要移动的字节个数。

7.根据权利要求3所述的车载总线信号的存取方法,其特征在于,所述判断移动后所述数据指针指向范围内的数据点是否为所述指定时间段内的数据点,包括:根据移动后所述起始指针指向的数据点的位置,确定第二起始数据点,并根据所述第二起始数据点的时间戳和所述第二起始数据点的前向相邻数据点的时间戳,判断所述第二起始数据点是否为所述指定时间段内的数据点;

根据移动后所述结束指针指向的数据点的位置,确定第二结束数据点,并根据所述第二结束数据点的时间戳和所述第二结束数据点的后向相邻数据点的时间戳,判断所述第二结束数据点是否为所述指定时间段内的数据点。

8.根据权利要求1所述的车载总线信号的存取方法,其特征在于,所述唯一标识信息由对应车载总线信号所属的网段名称、目标信息、信号名称和预设符号组成,其中,所述目标信息为报文名称信息或协议数据单元名称信息。

9.一种车载总线信号的存取装置,其特征在于,包括:

数据点存储模块,用于将采集到的若干车载总线信号的数据点以二进制字节格式存储在对应的数据文件中,以得到所述若干车载总线信号分别对应的数据文件组成的数据文件集;

目标数据文件确定模块,用于在需要读取指定车载总线信号的数据点时,从所述数据文件集中确定所述指定车载总线信号对应的数据文件,作为目标数据文件;

字节个数确定模块,用于根据所述目标数据文件中的数据指针当前指向的数据点的位置和指定时间段,确定所述数据指针需要移动的字节个数;

数据点判断模块,用于按照所述字节个数移动所述数据指针,并判断移动后所述数据指针指向范围内的数据点是否为所述指定时间段内的数据点;

数据点解析模块,用于在所述数据点判断模块判断移动后所述数据指针指向范围内的数据点为所述指定时间段内的数据点时,对移动后所述数据指针指向范围内的所有数据点进行解析,得到所述指定时间段内的所有数据点的解析结果;

所述数据文件中包含对应车载总线信号的唯一标识信息和所述唯一标识信息对应的标识长度;

所述目标数据文件确定模块,包括:标识解析子模块和标识比较子模块;

所述标识解析子模块,用于针对所述数据文件集中的每个数据文件,从该数据文件中解析出对应车载总线信号的唯一标识信息对应的标识长度,并根据所述对应车载总线信号的唯一标识信息对应的标识长度,从该数据文件中解析出所述对应车载总线信号的唯一标识信息,作为该数据文件对应的唯一标识信息;

所述标识比较子模块,用于根据每个数据文件对应的唯一标识信息,确定所述指定车载总线信号的唯一标识信息对应的数据文件,作为所述目标数据文件。

说明书 :

一种车载总线信号的存取方法和装置

技术领域

[0001] 本申请涉及汽车总线数据分析领域,特别是涉及一种车载总线信号的存取方法和装置。

背景技术

[0002] 汽车总线通讯数据分析过程中需要分析总线报文中各个信号的变化,因此需要对信号的数据进行保存和读取,现有的实现方法主要是有如下两种:第一种方法使用计算机的内存直接进行数据的存储和历史数据读取;第二种方法使用文本文件以字符的形式对信号数据进行存储,并根据需要解析加载指定行数历史数据。
[0003] 在第一种方法中,使用计算机内存可以实现数据快速存储和历史数据快速提取,但在实际的汽车总线数据通讯过程中,涉及到海量的信号数据存储,因为计算机内存有限,势必要抛弃一些历史数据,这样会导致被抛弃的数据无法得到分析,从而可能会错失一些关键信息,让整个采集的数据无效;在第二种方法中,使用文本文件以字符的形式对信号数据进行存储,可以实现对大量数据信号的存储,但是文本字符本身占用字节空间比较多,在数据量非常多时,会形成庞大的数据文件,并且这种方式在数据存储和解析时会消耗较大的计算机性能,解析的过程通过文本行数解析,也无法精确解析到指定时间段范围内的信号数据。

发明内容

[0004] 有鉴于此,本申请提供了一种车载总线信号的存取方法和装置,以解决现有技术存在的需要抛弃历史数据,以及文本字符占用字节空间多、存取速度慢和无法精确解析指定时间段范围内的信号数据的问题,其技术方案如下:
[0005] 一种车载总线信号的存取方法,包括:
[0006] 将采集到的若干车载总线信号的数据点以二进制字节格式存储在对应的数据文件中,以得到若干车载总线信号分别对应的数据文件组成的数据文件集;
[0007] 在需要读取指定车载总线信号的数据点时,从数据文件集中确定指定车载总线信号对应的数据文件,作为目标数据文件;
[0008] 根据目标数据文件中的数据指针当前指向的数据点的位置和指定时间段,确定数据指针需要移动的字节个数;
[0009] 按照字节个数移动数据指针,并判断移动后数据指针指向范围内的数据点是否为指定时间段内的数据点;
[0010] 若是,则对移动后数据指针指向范围内的所有数据点进行解析,得到指定时间段内的所有数据点的解析结果。
[0011] 可选的,还包括:
[0012] 若否,则返回执行根据目标数据文件中的数据指针当前指向的数据点的位置和指定时间段,确定数据指针需要移动的字节个数。
[0013] 可选的,根据目标数据文件中的数据指针当前指向的数据点的位置和指定时间段,确定数据指针需要移动的字节个数,包括:
[0014] 根据起始指针当前指向的数据点的位置和指定时间段的起始时间,确定起始指针需要移动的字节个数;
[0015] 根据结束指针当前指向的数据点的位置和指定时间段的结束时间,确定结束指针需要移动的字节个数。
[0016] 可选的,任一数据点中包括采集对应车载总线信号时的时间戳和信号值;
[0017] 根据起始指针当前指向的数据点的位置和指定时间段的起始时间,确定起始指针需要移动的字节个数,包括:
[0018] 根据起始指针当前指向的数据点的位置,确定第一起始数据点,并根据第一起始数据点的时间戳,计算第一起始数据点处的信号周期,作为起始信号周期;
[0019] 根据起始信号周期、起始指针当前指向的数据点的位置和指定时间段的起始时间,确定起始指针需要移动的字节个数;
[0020] 根据结束指针当前指向的数据点的位置和指定时间段的结束时间,确定结束指针需要移动的字节个数,包括:
[0021] 根据结束指针当前指向的数据点的位置,确定第一结束数据点,并根据第一结束数据点的时间戳,计算第一结束数据点处的信号周期,作为结束信号周期;
[0022] 根据结束信号周期、结束指针当前指向的数据点的位置和指定时间段的结束时间,确定结束指针需要移动的字节个数。
[0023] 可选的,根据第一起始数据点的时间戳,计算第一起始数据点处的信号周期,包括:
[0024] 计算第一起始数据点的后向相邻数据点的时间戳与第一起始数据点的时间戳的差值,计算出的差值作为第一起始数据点处的信号周期;
[0025] 根据第一结束数据点的时间戳,计算第一结束数据点处的信号周期,包括:
[0026] 计算第一结束数据点的时间戳与第一结束数据点的前向相邻数据点的时间戳的差值,计算出的差值作为第一结束数据点处的信号周期。
[0027] 可选的,根据起始信号周期、起始指针当前指向的数据点的位置和指定时间段的起始时间,确定起始指针需要移动的字节个数,包括:
[0028] 确定起始指针当前指向的数据点的位置处的时间,并计算指定时间段的起始时间与确定出的时间的差值,得到第一差值;
[0029] 将第一差值除以起始信号周期,得到的商值作为起始指针需要移动的数据点个数;
[0030] 计算起始指针需要移动的数据点个数和数据点占用字节数的乘积,乘积结果作为起始指针需要移动的字节个数;
[0031] 根据结束信号周期、结束指针当前指向的数据点的位置和指定时间段的结束时间,确定结束指针需要移动的字节个数,包括:
[0032] 确定结束指针当前指向的数据点的位置处的时间,并计算指定时间段的结束时间与确定出的时间的差值,得到第一差值;
[0033] 将第一差值除以结束信号周期,得到的商值作为结束指针需要移动的数据点个数;
[0034] 计算结束指针需要移动的数据点个数和数据点占用字节数的乘积,乘积结果作为结束指针需要移动的字节个数。
[0035] 可选的,判断移动后数据指针指向范围内的数据点是否为指定时间段内的数据点,包括:
[0036] 根据移动后起始指针指向的数据点的位置,确定第二起始数据点,并根据第二起始数据点的时间戳和第二起始数据点的前向相邻数据点的时间戳,判断第二起始数据点是否为指定时间段内的数据点;
[0037] 根据移动后结束指针指向的数据点的位置,确定第二结束数据点,并根据第二结束数据点的时间戳和第二结束数据点的后向相邻数据点的时间戳,判断第二结束数据点是否为指定时间段内的数据点。
[0038] 可选的,数据文件中包含对应车载总线信号的唯一标识信息和唯一标识信息对应的标识长度;
[0039] 从数据文件集中确定指定车载总线信号对应的数据文件,作为目标数据文件,包括:
[0040] 针对数据文件集中的每个数据文件,从该数据文件中解析出对应车载总线信号的唯一标识信息对应的标识长度,并根据对应车载总线信号的唯一标识信息对应的标识长度,从该数据文件中解析出对应车载总线信号的唯一标识信息,作为该数据文件对应的唯一标识信息;
[0041] 根据每个数据文件对应的唯一标识信息,确定指定车载总线信号的唯一标识信息对应的数据文件,作为目标数据文件。
[0042] 可选的,唯一标识信息由对应车载总线信号所属的网段名称、目标信息、信号名称和预设符号组成,其中,目标信息为报文名称信息或协议数据单元名称信息。
[0043] 一种车载总线信号的存取装置,包括:
[0044] 数据点存储模块,用于将采集到的若干车载总线信号的数据点以二进制字节格式存储在对应的数据文件中,以得到若干车载总线信号分别对应的数据文件组成的数据文件集;
[0045] 目标数据文件确定模块,用于在需要读取指定车载总线信号的数据点时,从数据文件集中确定指定车载总线信号对应的数据文件,作为目标数据文件;
[0046] 字节个数确定模块,用于根据目标数据文件中的数据指针当前指向的数据点的位置和指定时间段,确定数据指针需要移动的字节个数;
[0047] 数据点判断模块,用于按照字节个数移动数据指针,并判断移动后数据指针指向范围内的数据点是否为指定时间段内的数据点;
[0048] 数据点解析模块,用于在数据点判断模块判断移动后数据指针指向范围内的数据点为指定时间段内的数据点时,对移动后数据指针指向范围内的所有数据点进行解析,得到指定时间段内的所有数据点的解析结果。
[0049] 经由上述的技术方案可知,本申请提供的车载总线信号的存取方法,首先将采集到的若干车载总线信号的数据点以二进制字节格式存储在对应的数据文件中,以得到若干车载总线信号分别对应的数据文件组成的数据文件集,在需要读取指定车载总线信号的数据点时,从数据文件集中确定指定车载总线信号对应的数据文件,作为目标数据文件,接着根据目标数据文件中的数据指针当前指向的数据点的位置和指定时间段,确定数据指针需要移动的字节个数,之后按照字节个数移动数据指针,并判断移动后数据指针指向范围内的数据点是否为指定时间段内的数据点,最后若是,则对移动后数据指针指向范围内的所有数据点进行解析,得到指定时间段内的所有数据点的解析结果。本申请能够将采集的车载总线信号的数据点以二进制字节格式在对应数据文件中存储,这种存储方式使得数据文件可以存储在磁盘中,由于磁盘空间较大,从而无需抛弃历史数据,并且以二进制字节格式存储数据点,占用的存储空间较小,存取速度更快;同时,在需要读取指定车载总线信号的数据点时,本申请能够结合数据指针精确解析到指定时间段内的所有数据点。
[0050] 此外,利用二进制格式的方式在数据文件中存储对应车载总线信号的数据点,一定程度上保障了车载总线信号的安全,不易被篡改。

附图说明

[0051] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0052] 图1为本申请实施例提供的车载总线信号的存取方法的流程示意图;
[0053] 图2为本申请实施例提供的数据文件的具体存储结构示意图;
[0054] 图3为本申请实施例提供的数据指针当前指向的数据点的位置的示意图;
[0055] 图4为本申请实施例提供的移动前后数据指针指向的数据点的位置的示意图;
[0056] 图5为本申请实施例提供的车载总线信号的存取装置的结构示意图;
[0057] 图6为本申请实施例提供的车载总线信号的存取设备的硬件结构框图。

具体实施方式

[0058] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0059] 鉴于现有的使用计算机的内存直接进行数据的存储和历史数据读取的方法存在因计算机内存有限导致需要抛弃历史数据的问题,以及使用文本文件以字符的形式对车载总线信号数据进行存储的方法存在文本字符占用字节空间大、存取速度慢和无法精确解析指定时间段范围内的信号数据的问题,本案发明人进行了深入研究,最终提出了一种车载总线信号的存取方法,在对该车载总线信号的存取方法进行介绍之前,首先对本申请涉及到的几个名词进行解释说明。
[0060] 车载总线信号(简称信号):在车辆总线数据库(简称数据库)文件中定义的信号,数据库中定义信号的名称、起始位、长度以及信号物理值的计算规则等信息,信号值是根据上述定义,把真实总线数据中数据字节进行截取并计算的结果。
[0061] 数据点:车载总线信号的数据信息,可选的,数据点包括信号的总线时间戳(可选的,单位为秒)和信号值。
[0062] 信号唯一标识:在一个车载通讯网段中唯一确认信号的标志。
[0063] 接下来通过下述实施例对本申请提供的车载总线信号的存取方法进行详细介绍。
[0064] 请参阅图1,示出了本申请实施例提供的车载总线信号的存取方法的流程示意图,该车载总线信号的存取方法可以包括:
[0065] 步骤S101、将采集到的若干车载总线信号的数据点以二进制字节格式存储在对应的数据文件中,以得到若干车载总线信号分别对应的数据文件组成的数据文件集。
[0066] 本实施例可以针对每个车载总线信号定义一个对应的二进制字节格式的数据文件,可选的,可以定义后缀名为sig的二进制字节数据文件。
[0067] 在本步骤中,当采集车载总线信号的数据点后,可以将采集的数据点存储在对应的数据文件中,并且,在存储数据点时,需要将采集到的数据点转换为二进制字节格式进行存储。
[0068] 步骤S102、在需要读取指定车载总线信号的数据点时,从数据文件集中确定指定车载总线信号对应的数据文件,作为目标数据文件。
[0069] 具体的,本步骤可以对数据文件集进行解析,以从数据文件集中确定指定车载总线信号对应的数据文件。这里,指定车载总线信号是指需要读取的数据点对应的车载总线信号。
[0070] 步骤S103、根据目标数据文件中的数据指针当前指向的数据点的位置和指定时间段,确定数据指针需要移动的字节个数。
[0071] 在本步骤中,可以在目标数据文件中设置数据指针,当需要读取指定时间段内的数据点时,可以根据数据指针当前指向的数据点的位置和指定时间段,确定数据指针需要移动的字节个数。
[0072] 这里,若本次读取指定时间段内的数据点为首次读取,则数据指针当前指向的数据点为目标数据文件中的第一个数据点,若本次读取指定时间段内的数据点不为首次读取,即历史已经读取过某个时间段内的数据点,则数据指针当前指向的数据点是指历史最近一次读取某个时间段内的数据点时数据指针指向的数据点的位置。
[0073] 步骤S104、按照字节个数移动数据指针,并判断移动后数据指针指向范围内的数据点是否为指定时间段内的数据点。
[0074] 在前述步骤确定出字节个数后,可以按照字节个数移动数据指针。这里,根据字节个数移动数据指针时,可以是向前移动数据指针,也可以是向后移动数据指针。
[0075] 考虑到读取数据点时还需要进行解析处理,如果解析到指定时间段范围外的数据点,将额外消耗解析时间,降低数据点的读取效率,为了避免这种情况,可通过本步骤判断移动后数据指针指向范围内的数据点是否为指定时间段内的数据点。
[0076] 步骤S105、若是,则对移动后数据指针指向范围内的所有数据点进行解析,得到指定时间段内的所有数据点的解析结果。
[0077] 具体的,本步骤可在判断移动后数据指针指向范围内的数据点为指定时间段内的数据点时,再按照步骤S101中的存储格式对移动后数据指针指向范围内的所有数据点依次进行解析,得到解析结果。
[0078] 本申请提供的车载总线信号的存取方法,首先将采集到的若干车载总线信号的数据点以二进制字节格式存储在对应的数据文件中,以得到若干车载总线信号分别对应的数据文件组成的数据文件集,在需要读取指定车载总线信号的数据点时,从数据文件集中确定指定车载总线信号对应的数据文件,作为目标数据文件,接着根据目标数据文件中的数据指针当前指向的数据点的位置和指定时间段,确定数据指针需要移动的字节个数,之后按照字节个数移动数据指针,并判断移动后数据指针指向范围内的数据点是否为指定时间段内的数据点,最后若是,则对移动后数据指针指向范围内的所有数据点进行解析,得到指定时间段内的数据点的解析结果。本申请能够将采集的车载总线信号的数据点以二进制字节格式在对应数据文件中存储,这种存储方式使得数据文件可以存储在磁盘中,由于磁盘空间较大,从而无需抛弃历史数据,并且以二进制字节格式存储数据点,占用的存储空间较小,存取速度更快;同时,在需要读取指定车载总线信号的数据点时,本申请能够结合数据指针精确解析到指定时间段内的所有数据点。
[0079] 此外,利用二进制格式的方式在数据文件中存储对应车载总线信号的数据点,一定程度上保障了车载总线信号的安全,不易被篡改。
[0080] 为了使本领域技术人员更加理解本申请,以下结合各步骤的具体实施过程对前述实施例进行详细介绍。
[0081] 首先,以若干车载总线信号中的任一车载总线信号为例,对前述步骤S101中,将采集到的该车载总线信号的数据点以二进制字节格式存储在对应的数据文件中的具体实施过程进行说明。
[0082] 可选的,前述步骤S101“将采集到的该车载总线信号的数据点以二进制字节格式存储在对应的数据文件中”的具体实施过程包括:
[0083] 步骤a1、将该车载总线信号的唯一标识信息对应的标识长度存储在对应数据文件的前若干比特中。
[0084] 在本步骤中,该车载总线信号的唯一标识信息为字节序列,本步骤可以将字节序列包含的字节数量作为该车载总线信号的唯一标识信息对应的标识长度,并存储在对应数据文件的前若干比特中。
[0085] 在一可选实施例中,本步骤可将唯一标识信息包含的字符数量首先转换为若干比特长度的二进制值,然后再将转换得到的二进制值存储在对应数据文件的前若干比特中。
[0086] 可选的,前若干比特具体可以为前12bit,也就是说,本步骤中的标识长度由12bit组成,该12bit可以表征数值范围为1~4095字节(byte)。
[0087] 例如,参见图2所示的数据文件的具体存储结构示意图。本步骤中的标识长度是指Key长度,本步骤可将唯一标识信息包含的字符数量转换为12bit的二进制值,存储在Key长度所在的位置。
[0088] 步骤a2、将该车载总线信号的唯一标识信息存储在对应数据文件的标识长度之后的若干字节中。
[0089] 可选的,本步骤可将唯一标识信息的字节序列经过ASCII码表映射,得到易读的字符串形式标识信息(二进制值),然后再将字符串形式标识信息存储在对应数据文件的标识长度之后的若干字节中。
[0090] 这里,若干字节具体是指字符串形式标识信息包含的字符数量。例如,若该车载总线信号的唯一标识信息对应的字符串形式标识信息包含20字符,则将该字符串形式标识信息存储在对应数据文件的标识长度之后的20字节中;若该车载总线信号的唯一标识信息对应的字符串形式标识信息包含10字符,则将该字符串形式标识信息存储在对应数据文件的标识长度之后的10字节中,等等。
[0091] 需要说明的是,本步骤中存储在对应数据文件中的唯一标识信息中不包含中文字符。
[0092] 例如,参见图2所示,本步骤中的唯一标识信息是指Key值,该Key值的最大长度为4095byte。
[0093] 如图2所示,本实施例可将上述标识长度(Key长度)和唯一标识信息(Key值)共同作为数据文件的头文件部分。
[0094] 可选的,本步骤中,车载总线信号的唯一标识信息由对应车载总线信号所属的网段名称、目标信息、信号名称和预设符号组成,具体来说,可在网段名称、目标信息和信号名称中每两者之间通过预设符号连接。
[0095] 可选的,上述目标信息是指报文名称信息或协议数据单元(Protocol Data Unit,PDU)名称信息;可选的,上述预设符号具体可以为英文双冒号。
[0096] 步骤a3、将采集到的该车载总线信号的数据点以二进制字节格式存储在对应数据文件的唯一标识信息之后的若干字节中。
[0097] 在本步骤中,该车载总线信号的每个数据点占用的字节数量固定,以便于后续读取时解析数据点。
[0098] 可选的,该车载总线信号的数据点具体包括采集该车载总线信号时的时间戳和信号值,也就是说,本步骤需要将采集该车载总线信号时的时间戳和采集到的信号值对应存储在数据文件中,以便于后续精确解析到指定时间段内的数据点。
[0099] 需要说明的是,本步骤在采集数据点后,需要将数据点转换为二进制字符格式(即二进制值),然后再按照数据文件存储的结构依次存入对应数据文件中,如此重复存储数据点,直至采集结束为止。
[0100] 可选的,本实施例可使数据点的时间戳占用8字节,使对应的信号值占用8字节,按照时间戳的先后顺序依次存储该车载总线信号的所有数据点。
[0101] 例如,参见图2所示,本步骤可将该车载总线信号的数据点按照时间戳的先后顺序依次存储在数据点组部分,对于每个数据点来说,采集时的时间戳占用8byte,采集的具体信号值占用8byte。
[0102] 采用如上述步骤中介绍的存储方法可将所有车载总线信号的数据点均存储在对应数据文件中,如此可得到本步骤中的数据文件集。
[0103] 在需要读取指定车载总线信号的数据点时,可基于前述介绍的存储结构对数据文件集中的数据文件进行解析,得到目标数据文件,然后再对目标数据文件中指定时间段内的所有数据点进行精确解析。
[0104] 具体来说,在一可选实施例中,前述“步骤S102、在需要读取指定车载总线信号的数据点时,从数据文件集中确定指定车载总线信号对应的数据文件,作为目标数据文件”的过程包括:
[0105] 步骤b1、针对数据文件集中的每个数据文件,从该数据文件中解析出对应车载总线信号的唯一标识信息对应的标识长度,并根据对应车载总线信号的唯一标识信息对应的标识长度,从该数据文件中解析出对应车载总线信号的唯一标识信息,作为该数据文件对应的唯一标识信息。
[0106] 可选的,如前述步骤中的介绍,可以首先解析数据文件的前若干比特,得到对应车载总线信号的唯一标识信息对应的标识长度,然后再从数据文件的前若干比特之后,解析长度为标识长度的若干字节,得到解析出的唯一标识信息。
[0107] 例如,首先取出数据文件的前12bit位,按照无符号计算出整型数值,该整形数值即为数据文件对应车载总线信号的唯一标识信息对应的标识长度,假设得到的标识长度为20,则对数据文件中标识长度之后的前20个字节进行解析,例如,将该20个字节按照ASCII码表映射成字符并拼接成字符串,得到数据文件对应车载总线信号的唯一标识信息。
[0108] 步骤b2、根据每个数据文件对应的唯一标识信息,确定指定车载总线信号的唯一标识信息对应的数据文件,作为目标数据文件。
[0109] 在前述步骤b1确定出数据文件集中每个数据文件对应的唯一标识信息后,即可以根据唯一标识信息确定出指定车载总线信号的唯一标识信息对应的数据文件。
[0110] 在步骤S102确定出目标数据文件后,即可按照步骤S103~步骤S105读取目标数据文件中指定时间段内的数据点。这里,步骤S103~步骤S105中的数据指针包括起始指针和结束指针。
[0111] 在一可选实施例中,前述“步骤S103、根据目标数据文件中的数据指针当前指向的数据点的位置和指定时间段,确定数据指针需要移动的字节个数”的过程包括:
[0112] 步骤c1、根据起始指针当前指向的数据点的位置和指定时间段的起始时间,确定起始指针需要移动的字节个数。
[0113] 可选的,本步骤的过程具体包括步骤c11~c12:
[0114] 步骤c11、根据起始指针当前指向的数据点的位置,确定第一起始数据点,并根据第一起始数据点的时间戳,计算第一起始数据点处的信号周期,作为起始信号周期。
[0115] 在本步骤中,将起始指针当前指向的数据点记为第一起始数据点。如图3所示,起始指针是指ps,该起始指针当前指向的数据点的位置处的时间(定义为起始时间)为tm,第一起始数据点为数据点M。
[0116] 可选的,“根据第一起始数据点的时间戳,计算第一起始数据点处的信号周期”的过程包括:计算第一起始数据点的后向相邻数据点的时间戳与第一起始数据点的时间戳的差值,计算出的差值作为第一起始数据点处的信号周期。例如,将图3中第一起始数据点M+1的时间戳与数据点M的时间戳的差值,确定为第一起始数据点M处的信号周期。
[0117] 需要说明的是,本步骤给出的“根据第一起始数据点的时间戳,计算第一起始数据点处的信号周期”的过程仅为示例,除此之外还可以采用其他方式,例如,计算第一起始数据点时间戳与第一起始数据点的前向相邻数据点的时间戳的差值,作为第一起始数据点处的信号周期,本申请对此不进行限定。
[0118] 步骤c12、根据起始信号周期、起始指针当前指向的数据点的位置和指定时间段的起始时间,确定起始指针需要移动的字节个数。
[0119] 可选的,本步骤的过程包括以下步骤c121~c123:
[0120] 步骤c121、确定起始指针当前指向的数据点的位置处的时间,并计算指定时间段的起始时间与确定出的时间的差值,得到第一差值。
[0121] 步骤c122、将第一差值除以起始信号周期,得到的商值作为起始指针需要移动的数据点个数。
[0122] 步骤c123、计算起始指针需要移动的数据点个数和数据点占用字节数的乘积,乘积结果作为起始指针需要移动的字节个数。
[0123] 在本实施例中,每个数据点占用的字节数为预先设定好的定值,在确定出起始指针需要移动的数据点个数后,即可将起始指针需要移动的数据点个数乘以数据点占用字节数,得到起始指针需要移动的字节个数。
[0124] 也即,本步骤可采用如下的公式(1),确定起始指针需要移动的字节个数。
[0125]
[0126] 式中,counts是指起始指针需要移动的字节个数,tnews是指指定时间段的起始时间,tm是指起始指针当前指向的数据点的位置处的时间,Δtm是指起始信号周期,λ是指数据点占用字节数(即每个数据点占用的字节数)。
[0127] 可选的,如上文对数据点的介绍,λ具体可以为16(即时间戳占用的8字节加上信号值占用的8字节,共16字节);当然,在实际应用中,λ还可以为其他,本申请对此不进行限定。
[0128] 需要说明的是,若本步骤确定出的字节个数counts为正值,则表征起始指针需要后移相应个数的字节;若本步骤确定出的字节个数counts为负值,则表征起始指针需要前移相应个数的字节。
[0129] 步骤c2、根据结束指针当前指向的数据点的位置和指定时间段的结束时间,确定结束指针需要移动的字节个数。
[0130] 可选的,本步骤的过程具体包括以下步骤c21~c22:
[0131] 步骤c21、根据结束指针当前指向的数据点的位置,确定第一结束数据点,并根据第一结束数据点的时间戳,计算第一结束数据点处的信号周期,作为结束信号周期。
[0132] 在本步骤中,将结束指针当前指向的数据点记为第一结束数据点。如图3所示,结束指针是指pe,该结束指针当前指向的数据点的位置处的时间(定义为结束时间)为tn+1,第一结束数据点为数据点N+1。
[0133] 可选的,“根据第一结束数据点的时间戳,计算第一结束数据点处的信号周期”的过程包括:计算第一结束数据点的时间戳与第一结束数据点的前向相邻数据点的时间戳的差值,计算出的差值作为第一结束数据点处的信号周期。例如,将图3中第一结束数据点N+1的时间戳与数据点N的时间戳的差值,确定为第一结束数据点N+1处的信号周期。
[0134] 需要说明的是,本步骤给出的“根据第一结束数据点的时间戳,计算第一结束数据点处的信号周期”的过程仅为示例,除此之外还可以采用其他方式,例如,计算第一结束数据点的后向相邻数据点的时间戳与第一结束数据点的时间戳的差值,作为第一结束数据点处的信号周期,本申请对此不进行限定。
[0135] 步骤c22、根据结束信号周期、结束指针当前指向的数据点的位置和指定时间段的结束时间,确定结束指针需要移动的字节个数。
[0136] 可选的,本步骤的过程包括以下步骤c221~c223:
[0137] 步骤c221、确定结束指针当前指向的数据点的位置处的时间,并计算指定时间段的结束时间与确定出的时间的差值,得到第一差值。
[0138] 步骤c222、将第一差值除以结束信号周期,得到的商值作为结束指针需要移动的数据点个数。
[0139] 步骤c223、计算结束指针需要移动的数据点个数和数据点占用字节数的乘积,乘积结果作为结束指针需要移动的字节个数。
[0140] 如前述步骤c123中的介绍,每个数据点占用的字节数为预先设定好的定值,在确定出结束指针需要移动的数据点个数后,即可将结束指针需要移动的数据点个数乘以数据点占用字节数,得到结束指针需要移动的字节个数。
[0141] 也即,本步骤可采用如下的公式(2),确定起始指针需要移动的字节个数。
[0142]
[0143] 式中,counte是指起始指针需要移动的字节个数,tnewe是指指定时间段的起始时间,tn+1是指起始指针当前指向的数据点的位置处的时间,Δtn是指起始信号周期,λ是指每个数据点占用的字节个数。
[0144] 需要说明的是,若本步骤确定出的字节个数counte为正值,则表征结束指针需要后移相应个数的字节;若本步骤确定出的字节个数counte为负值,则表征结束指针需要前移相应个数的字节。
[0145] 在前述步骤c1和c2确定出起始指针和结束指针需要移动的字节个数后,步骤S104便可按照确定的字节个数对起始指针和结束指针进行移动,例如移动后起始指针和结束指针指向的数据点的位置如图4所示。图4中,移动前起始指针ps指向的第一起始数据点为数据点M,移动前结束指针pe指向的第一结束数据点为数据点N+1,则移动前起始指针ps和结束指针pe指向范围内的数据点为数据点M~数据点N+1,即图4中的Dataold;移动后起始指针ps指向的第二起始数据点为数据点2,移动后结束指针pe指向的第二结束数据点为数据点M,则移动后起始指针ps和结束指针pe指向范围内的数据点为数据点2~数据点M,即图4中的Datanew。
[0146] 也就是说,步骤S104是基于第一起始数据点处的信号周期对起始指针进行移动,并基于第一结束数据点处的信号周期对结束指针进行移动的。考虑到车载总线信号在采集过程中,采集周期可能会变化,如果采集周期的变化时间在起始指针移动的范围内,将导致移动后起始指针指向错误的数据点,同理,如果采集周期的变化时间在结束指针移动的范围内,将导致移动后结束指针指向错误的数据点。
[0147] 为了避免移动后数据指针指向范围与指定时间段不一致,需要通过步骤S104对移动后数据指针指向的数据点的位置进行校验,即“判断移动后数据指针指向范围内的数据点是否为指定时间段内的数据点”。
[0148] 在一可选实施例中,前述步骤S104中“判断移动后数据指针指向范围内的数据点是否为指定时间段内的数据点”的过程可以包括:
[0149] 步骤d1、根据移动后起始指针指向的数据点的位置,确定第二起始数据点,并根据第二起始数据点的时间戳和第二起始数据点的前向相邻数据点的时间戳,判断第二起始数据点是否为指定时间段内的数据点。
[0150] 具体来说,本步骤可在确定第二起始数据点后,判断指定时间段的起始时间是否在第二起始数据点的前向相邻数据点的时间戳和第二起始数据点的时间戳组成的时间范围内,以此确定第二起始数据点是否为指定时间段内的数据点。
[0151] 例如,参见图4所示,第二起始数据点为数据点2,则本步骤可判断指定时间段的起始时间是否在[t1,t2]范围内,若是,则说明第二起始数据点为指定时间段内的数据点,若否,则说明第二起始数据点不为指定时间段内的数据点。
[0152] 步骤d2、根据移动后结束指针指向的数据点的位置,确定第二结束数据点,并根据第二结束数据点的时间戳和第二结束数据点的后向相邻数据点的时间戳,判断第二结束数据点是否为指定时间段内的数据点。
[0153] 具体来说,本步骤可在确定第二结束数据点后,判断指定时间段的结束时间是否在第二结束数据点的时间戳和第二结束数据点的后向相邻数据点的时间戳组成的时间范围内,以此确定第二结束数据点是否为指定时间段内的数据点。
[0154] 例如,参见图4所示,第二结束数据点为数据点M,则本步骤可判断指定时间段的结束时间是否在[tm,tm+1]范围内,若是,则说明第二结束数据点为指定时间段内的数据点,若否,则说明第二结束数据点不为指定时间段内的数据点。
[0155] 在本步骤中,若第二起始数据点和第二结束数据点均为指定时间段内的数据点,则第二起始数据点和第二结束数据点之间的数据点也必然为指定时间段内的数据点,那么判断移动后数据指针指向范围内的数据点为指定时间段内的数据点;若第二起始数据点不为指定时间段内的数据点,或者,第二结束数据点不为指定时间段内的数据点,或者,第二起始数据点和第二结束数据点均不为指定时间段内的数据点,则判断移动后数据指针指向范围内的数据点不为指定时间段内的数据点。
[0156] 由此,在第二起始数据点和第二结束数据点均为指定时间段内的数据点时,可执行前述步骤S105。
[0157] 在步骤S105中,需要按照顺序依次提取和解析移动后数据指针指向范围内的每个数据点,在解析每个数据点时,需要依据存储顺序先解析每个数据点的时间戳,再解析数据点的信号值。依次解析,即可还原出指定时间段上的所有数据点。
[0158] 例如,以一个数据点占用16字节,其中,时间戳占用8字节,信号值占用8字节为例,对步骤S105“对移动后数据指针指向范围内的所有数据点进行解析,得到指定时间段内的所有数据点的解析结果”的过程进行说明。
[0159] 首先提取移动后数据指针指向范围内的第一个16字节,将该第一个16字节中的前8字节按照双精度类型解析为移动后数据指针指向范围内的第一个数据点的时间戳,将后8字节按照双精度类型解析为移动后数据指针指向范围内的第一个数据点的信号值,如此便可得到指定时间段内的第一个数据点的解析结果。
[0160] 接着提取移动后数据指针指向范围内的第二个16字节,将该第二个16字节中的前8字节按照双精度类型解析为移动后数据指针指向范围内的第二个数据点的时间戳,将后8字节按照双精度类型解析为移动后数据指针指向范围内的第二个数据点的信号值,如此便可得到指定时间段内的第二个数据点的解析结果。
[0161] 以此类推,可以得到指定时间段内的所有数据点的解析结果。
[0162] 综上,本实施例提供的车载总线信号的存取方法占用的存储空间小、加载速度快且准确。利用这种方法可以解决在长时间记录车载总线信号数据,并需要随时查看过往信号数据时遇到的存储文件过大,解析过往数据缓慢、加载的数据段不准确的问题。同时,本实施例中定义的利用二进制值格式的方式存储车载总线信号的数据点,一定程度上保障了数据的安全,不易被篡改。
[0163] 考虑到前述实施例中的步骤S104在“判断移动后数据指针指向范围内的数据点是否为指定时间段内的数据点”时,可能会出现移动后数据指针指向范围内的数据点不为指定时间段内的数据点的情况,即会出现第二起始数据点不为指定时间段内的数据点,或者,第二结束数据点不为指定时间段内的数据点,或者,第二起始数据点和第二结束数据点均不为指定时间段内的数据点的情况。
[0164] 在本实施例中,当步骤S104判断为否的情况下,可以返回执行步骤S103,即根据目标数据文件中的数据指针当前指向的数据点的位置和指定时间段,确定数据指针需要移动的字节个数,直至步骤S104判断移动后数据指针指向范围内的数据点为指定时间段内的数据点时,再按照步骤S105进行解析。
[0165] 需要说明的是,在返回执行步骤S103时,步骤S103中“数据指针当前指向的数据点的位置”是指前一次移动后数据指针当前指向的数据点的位置。
[0166] 举例来说,如图4所示,未移动数据指针时,起始指针指向数据点M+1,结束指针指向数据点N+1。
[0167] 首先基于步骤S102~步骤S104对数据指针进行第一次移动,假设第一次移动数据指针后,起始指针指向数据点2,结束指针指向数据点M,此时需要基于步骤S104“判断移动后数据指针指向范围内的数据点是否为指定时间段内的数据点”。
[0168] 若步骤S104判断为否,则需要返回执行步骤S103,即根据目标数据文件中的起始指针当前指向的数据点2的位置、结束指针当前指向的数据点M的位置和指定时间段,确定数据指针需要移动的字节个数,并再次通过步骤S104“判断移动后数据指针指向范围内的数据点是否为指定时间段内的数据点”,若否,则再次返回步骤S103,以此类推。
[0169] 若步骤S104判断为是,则无需返回执行步骤S103,而是可以根据步骤S105“对移动后数据指针指向范围内的所有数据点进行解析,得到指定时间段内的所有数据点的解析结果”。
[0170] 本实施例中各步骤的实施过程与前述实施例相同,详细可参照前述实施例中的介绍,在此不再赘述。
[0171] 本实施例在步骤S104判断为否时,能够重新确定字节个数,并重新移动数据指针,使得本实施例经过一次或多次移动后,数据指针指向范围与指定时间段一致,此时再对移动后数据指针指向范围内的所有数据点进行解析,从而能够精确解析指定时间段范围内的数据点,提高了读取车载总线信号数据的准确性。
[0172] 本申请实施例还提供了一种车载总线信号的存取装置,下面对本申请实施例提供的车载总线信号的存取装置进行描述,下文描述的车载总线信号的存取装置与上文描述的车载总线信号的存取方法可相互对应参照。
[0173] 请参阅图5,示出了本申请实施例提供的车载总线信号的存取装置的结构示意图,如图5所示,该车载总线信号的存取装置可以包括:数据点存储模块501、目标数据文件确定模块502、字节个数确定模块503、数据点判断模块504和数据点解析模块505。
[0174] 数据点存储模块501,用于将采集到的若干车载总线信号的数据点以二进制字节格式存储在对应的数据文件中,以得到若干车载总线信号分别对应的数据文件组成的数据文件集。
[0175] 目标数据文件确定模块502,用于在需要读取指定车载总线信号的数据点时,从数据文件集中确定指定车载总线信号对应的数据文件,作为目标数据文件。
[0176] 字节个数确定模块503,用于根据目标数据文件中的数据指针当前指向的数据点的位置和指定时间段,确定数据指针需要移动的字节个数。
[0177] 数据点判断模块504,用于按照字节个数移动数据指针,并判断移动后数据指针指向范围内的数据点是否为指定时间段内的数据点。
[0178] 数据点解析模块505,用于在数据点判断模块判断移动后数据指针指向范围内的数据点为指定时间段内的数据点时,对移动后数据指针指向范围内的所有数据点进行解析,得到指定时间段内的所有数据点的解析结果。
[0179] 本申请提供的车载总线信号的存取装置,首先将采集到的若干车载总线信号的数据点以二进制字节格式存储在对应的数据文件中,以得到若干车载总线信号分别对应的数据文件组成的数据文件集,在需要读取指定车载总线信号的数据点时,从数据文件集中确定指定车载总线信号对应的数据文件,作为目标数据文件,接着根据目标数据文件中的数据指针当前指向的数据点的位置和指定时间段,确定数据指针需要移动的字节个数,之后按照字节个数移动数据指针,并判断移动后数据指针指向范围内的数据点是否为指定时间段内的数据点,最后若是,则对移动后数据指针指向范围内的所有数据点进行解析,得到指定时间段内的数据点的解析结果。本申请能够将采集的车载总线信号的数据点以二进制字节格式在对应数据文件中存储,这种存储方式使得数据文件可以存储在磁盘中,由于磁盘空间较大,从而无需抛弃历史数据,并且以二进制字节格式存储数据点,占用的存储空间较小,存取速度更快;同时,在需要读取指定车载总线信号的数据点时,本申请能够结合数据指针精确解析到指定时间段内的所有数据点。
[0180] 此外,利用二进制格式的方式在数据文件中存储对应车载总线信号的数据点,一定程度上保障了车载总线信号的安全,不易被篡改。
[0181] 在一种可能的实现方式中,上述字节个数确定模块503,还可以用于在数据点判断模块504判断移动后数据指针指向范围内的数据点为指定时间段内的数据点时,根据目标数据文件中的数据指针当前指向的数据点的位置和指定时间段,确定数据指针需要移动的字节个数。
[0182] 在一种可能的实现方式中,上述字节个数确定模块503可以包括:第一字节个数确定子模块和第二字节个数确定子模块。
[0183] 第一字节个数确定子模块,用于根据起始指针当前指向的数据点的位置和指定时间段的起始时间,确定起始指针需要移动的字节个数。
[0184] 第二字节个数确定子模块,用于根据结束指针当前指向的数据点的位置和指定时间段的结束时间,确定结束指针需要移动的字节个数。
[0185] 在一种可能的实现方式中,任一数据点中包括采集对应车载总线信号时的时间戳和信号值。
[0186] 基于此,上述第一字节个数确定子模块可以包括:起始信号周期计算子模块和第一字节个数计算子模块。
[0187] 起始信号周期计算子模块,用于根据起始指针当前指向的数据点的位置,确定第一起始数据点,并根据第一起始数据点的时间戳,计算第一起始数据点处的信号周期,作为起始信号周期。
[0188] 第一字节个数计算子模块,用于根据起始信号周期、起始指针当前指向的数据点的位置和指定时间段的起始时间,确定起始指针需要移动的字节个数。
[0189] 相应的,上述第二字节个数确定子模块可以包括:结束信号周期计算子模块和第二字节个数计算子模块。
[0190] 结束信号周期计算子模块,用于根据结束指针当前指向的数据点的位置,确定第一结束数据点,并根据第一结束数据点的时间戳,计算第一结束数据点处的信号周期,作为结束信号周期。
[0191] 第二字节个数计算子模块,用于根据结束信号周期、结束指针当前指向的数据点的位置和指定时间段的结束时间,确定结束指针需要移动的字节个数。
[0192] 在一种可能的实现方式中,上述起始信号周期计算子模块具体可以用于计算第一起始数据点的后向相邻数据点的时间戳与第一起始数据点的时间戳的差值,计算出的差值作为第一起始数据点处的信号周期。
[0193] 上述结束信号周期计算子模块具体可以用于计算第一结束数据点的时间戳与第一结束数据点的前向相邻数据点的时间戳的差值,计算出的差值作为第一结束数据点处的信号周期。
[0194] 在一种可能的实现方式中,上述第一字节个数计算子模块可以包括:第一差值计算子模块、第一商值计算子模块和第一相乘计算子模块。
[0195] 第一差值计算子模块,用于确定起始指针当前指向的数据点的位置处的时间,并计算指定时间段的起始时间与确定出的时间的差值,得到第一差值。
[0196] 第一商值计算子模块,用于将第一差值除以起始信号周期,得到的商值作为起始指针需要移动的数据点个数。
[0197] 第一相乘计算子模块,用于计算起始指针需要移动的数据点个数和数据点占用字节数的乘积,乘积结果作为起始指针需要移动的字节个数。
[0198] 相应的,上述第二字节个数计算子模块可以包括:第二差值计算子模块、第二商值计算子模块和第二相乘计算子模块。
[0199] 第二差值计算子模块,用于确定结束指针当前指向的数据点的位置处的时间,并计算指定时间段的结束时间与确定出的时间的差值,得到第一差值。
[0200] 第二商值计算子模块,用于将第一差值除以结束信号周期,得到的商值作为结束指针需要移动的数据点个数。
[0201] 第二相乘计算子模块,用于计算结束指针需要移动的数据点个数和数据点占用字节数的乘积,乘积结果作为结束指针需要移动的字节个数。
[0202] 在一种可能的实现方式中,数据点判断模块504可以包括:第一数据点判断子模块和第二数据点判断子模块。
[0203] 第一数据点判断子模块,用于根据移动后起始指针指向的数据点的位置,确定第二起始数据点,并根据第二起始数据点的时间戳和第二起始数据点的前向相邻数据点的时间戳,判断第二起始数据点是否为指定时间段内的数据点。
[0204] 第二数据点判断子模块,用于根据移动后结束指针指向的数据点的位置,确定第二结束数据点,并根据第二结束数据点的时间戳和第二结束数据点的后向相邻数据点的时间戳,判断第二结束数据点是否为指定时间段内的数据点。
[0205] 在一种可能的实现方式中,数据文件中包含对应车载总线信号的唯一标识信息和唯一标识信息对应的标识长度。
[0206] 基于此,上述目标数据文件确定模块502可以包括:标识解析子模块和标识比较子模块。
[0207] 标识解析子模块,用于针对数据文件集中的每个数据文件,从该数据文件中解析出对应车载总线信号的唯一标识信息对应的标识长度,并根据对应车载总线信号的唯一标识信息对应的标识长度,从该数据文件中解析出对应车载总线信号的唯一标识信息,作为该数据文件对应的唯一标识信息。
[0208] 标识比较子模块,用于根据每个数据文件对应的唯一标识信息,确定指定车载总线信号的唯一标识信息对应的数据文件,作为目标数据文件。
[0209] 在一种可能的实现方式中,上述唯一标识信息由对应车载总线信号所属的网段名称、目标信息、信号名称和预设符号组成,其中,目标信息为报文名称信息或协议数据单元名称信息。
[0210] 本申请实施例还提供了一种车载总线信号的存取设备。可选的,图6示出了车载总线信号的存取设备的硬件结构框图,参照图6,该车载总线信号的存取设备的硬件结构可以包括:至少一个处理器601,至少一个通信接口602,至少一个存储器603和至少一个通信总线604;
[0211] 在本申请实施例中,处理器601、通信接口602、存储器603、通信总线604的数量为至少一个,且处理器601、通信接口602、存储器603通过通信总线604完成相互间的通信;
[0212] 处理器601可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;
[0213] 存储器603可能包含高速RAM存储器,也可能还包括非易失性存储器(non‑volatile memory)等,例如至少一个磁盘存储器;
[0214] 其中,存储器603存储有程序,处理器601可调用存储器603存储的程序,所述程序用于:
[0215] 将采集到的若干车载总线信号的数据点以二进制字节格式存储在对应的数据文件中,以得到若干车载总线信号分别对应的数据文件组成的数据文件集;
[0216] 在需要读取指定车载总线信号的数据点时,从数据文件集中确定指定车载总线信号对应的数据文件,作为目标数据文件;
[0217] 根据目标数据文件中的数据指针当前指向的数据点的位置和指定时间段,确定数据指针需要移动的字节个数;
[0218] 按照字节个数移动数据指针,并判断移动后数据指针指向范围内的数据点是否为指定时间段内的数据点;
[0219] 若是,则对移动后数据指针指向范围内的所有数据点进行解析,得到指定时间段内的所有数据点的解析结果。
[0220] 可选的,所述程序的细化功能和扩展功能可参照上文描述。
[0221] 本申请实施例还提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上述车载总线信号的存取方法。
[0222] 可选的,所述程序的细化功能和扩展功能可参照上文描述。
[0223] 最后,还需要说明的是,在本文中,诸如和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0224] 本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
[0225] 对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。