模拟数据发生方法、装置、计算机设备和存储介质与流程

文档序号:32657332发布日期:2022-12-23 22:11阅读:23来源:国知局
模拟数据发生方法、装置、计算机设备和存储介质与流程

1.本技术涉及数据测试技术领域,特别是涉及一种模拟数据发生方法、装置、计算机设备和存储介质。


背景技术:

2.在从人工手动驾驶到无人自动驾驶的实现中,传感器就是自动驾驶汽车的眼睛,用于获取周围环境信息;而数据融合系统就是自动驾驶汽车的大脑,用于对从眼睛中接收到的数据进行计算和分析,为下一步输出控制车辆运动的指令(如加速、制动、转向等)提供依据。数据融合系统的数据融合能力直接影响到系统对目标识别的准确性、可靠性和及时性。
3.在自动驾驶领域中,常用的传感器包括摄像头、激光雷达、超声波雷达、毫米波雷达等,在自动驾驶汽车的设计研发阶段,需要对数据融合系统的数据融合能力进行测试,在测试过程中,需要将各种类型的传感器数据输入被测的数据融合系统进行测试。
4.在传统的测试方法中,可以将多种类型的真实的传感器接入数据融合系统,以利用这些传感器生成数据对数据融合系统进行测试,例如参见图1所示,给出了一个将激光雷达、毫米波雷达、超声波雷达、摄像头接入被测数据融合系统进行测试的示例。然而,这种方式需要使用到多种数据传感器,如激光雷达、毫米波雷达、超声波雷达等,且不同传感器厂商的数据格式可能存在不同差异,要做到兼容性测试需要大量的传感器设备,而这些传感器设备的费用高昂。
5.在传统的测试方法中,一般通过数据回放的方式来获取传感器数据,而数据回放的速率受制于录制的速率,数据多样性受制于录制的时间以及录制的场地和空间物体多样性;由于一些传感器的数据量非常大,以现有的存储设备难以存储较长时间的数据,从而导致测试数据的局限性。
6.因此,上述传统的数据融合系统的测试方法存在改进的空间。


技术实现要素:

7.基于此,有必要针对上述技术问题,提供一种能够节约对数据融合系统的测试成本,提升测试灵活性的模拟数据方法、装置、计算机设备和存储介质。
8.一种模拟数据发生方法,所述方法包括:
9.通过用户界面接收用户输入,所述用户输入包括待发生数据的数据类型参数、数值参数、发生时间参数和目标接口参数;
10.查找预存的与所述数据类型参数对应的数据模板文件;
11.利用所述数据模板文件,基于所述数值参数,生成数据包队列;
12.将所述数据包队列中的每个数据包按照所述发生时间参数所指定的发送时刻发送至所述目标接口参数对应的目标接口。
13.在一个实施例中,所述查找预存的与所述数据类型参数对应的数据模板文件,包
括:
14.从数据模板文件集合中,查找与所述数据类型参数对应的数据模板文件;
15.其中,所述数据模板文件集合预存有各种数据类型参数对应的数据模板文件,每个所述数据模板文件用于根据所述数值参数所确定的取值而生成具有所述取值并且模拟由所述数据类型参数代表的传感器探测的数据的数据格式的数据包。
16.在一个实施例中,所述利用所述数据模板文件,基于所述数值参数,生成数据包队列包括:
17.利用所述数据模板文件,生成具有默认取值的模板数据包;
18.基于所述数值参数,重复在前一已生成数据包的数值基础上修改以对应的数值偏移量以确定当前数据包的步骤,从而生成符合所述数值参数的所述多个数据包;
19.将所述多个的数据包依序送入数据包队列中。
20.在一个实施例中,所述基于所述数值参数,重复在前一已生成数据包的数值基础上修改以对应的数值偏移量以确定当前数据包的步骤,从而生成符合所述数值参数的所述多个数据包,包括:
21.当所述数值参数中包括随机数值未被勾选的信息,且所述数值参数中不包含用户指定数值时,重复在前一已生成数据包的数值基础上修改以零数值偏移量以确定当前数据包的步骤,从而生成具有所述默认取值的所述多个数据包;
22.当所述数值参数中包括随机数值未被勾选的信息,且所述数值参数中包含用户指定数值时,在所述模板数据包的所述默认取值基础上修改以用户指定数值与所述默认取值之差的数值偏移量以确定当前数据包,然后重复在前一已生成数据包的数值基础上修改以零数值偏移量以确定当前数据包的步骤,从而生成具有所述用户指定取值的所述多个数据包;
23.当所述数值参数中包括随机数值已被勾选的信息时,获取所述数值参数中的随机数值范围,重复在前一已生成数据包的数值基础上在确保当前数据包处于所述随机数值范围的前提下修改以随机数值偏移量以确定当前数据包的步骤,从而生成具有所述随机数值范围内的随机取值的多个数据包。
24.在一个实施例中,将所述数据包队列中的每个数据包按照所述发生时间参数所指定的发送时刻发送至所述目标接口参数对应的目标接口,包括:
25.基于所述发生时间参数,确定初始发送时刻和发送时间间隔;
26.从所述数据包队列中取出首个数据包,按照所述初始发送时刻将所述首个数据包发送至所述目标接口参数对应的目标接口;
27.重复按照在前一已发送数据包的发送时刻基础上加上所述发送时间间隔而确定的发送时刻将当前数据包发送至所述目标接口的步骤,直至发送完所述数据包队列中全部的数据包为止。
28.在一个实施例中,所述用户输入还包括故障模拟信息;在生成和/或发送数据包时,还根据所述故障模拟信息调整数据包的取值和/或数据包的发送时刻,以模拟所述故障模拟信息所对应的故障对所述数据包的取值和/或数据包的发送时刻的影响。
29.在一个实施例中,当所述故障模拟信息包括数值故障模拟信息时,所述利用所述数据模板文件,基于所述数值参数,生成数据包队列,包括:利用所述数据模板文件,基于所
述数值参数和所述数值故障模拟信息,生成数据包队列,使得所述数据包队列中的数据包的取值计入了所述数值故障模拟信息对应的数值故障对所述取值的影响差量。
30.在一个实施例中,当所述故障模拟信息包括发生时间故障模拟信息时,将所述数据包队列中的每个数据包按照所述发生时间参数所指定的时刻发送至目标接口参数对应的目标接口,包括:将所述数据包队列中的每个数据包按照所述发生时间参数和所述发生时间故障模拟信息所指定的发送时刻发送至所述目标接口参数对应的目标接口,使得所述数据包的所述发送时刻计入了所述发生时间故障模拟信息对应的发生时间故障对所述发送时刻的影响差量。
31.一种模拟数据发生装置,所述装置包括:
32.输入接收模块,用于通过用户界面接收用户输入,所述用户输入包括待发生数据的数据类型参数、数值参数、发生时间参数和目标接口参数;
33.模板查找模块,用于查找预存的与所述数据类型参数对应的数据模板文件;
34.数据包生成模块,用于利用所述数据模板文件,基于所述数值参数,生成数据包队列;
35.数据包发送模块,用于将所述数据包队列中的每个数据包按照所述发生时间参数所指定的发送时刻发送至所述目标接口参数对应的目标接口。
36.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如上任一实施例所述方法的步骤。
37.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一实施例所述的方法的步骤。
38.上述模拟数据发生方法、装置、计算机设备和存储介质,通过预存的数据模板文件,根据用户输入而模拟生成具有对应的传感器的数据格式的数据包,并将这些数据包依照用户输入而按照指定的时刻发送到数据融合系统的对应接口,从而能够根据用户的需要定制输入到数据融合系统中用于测试的传感器数据的数量、取值和发生时间等参数,有效提升了可使用的测试数据的灵活性。
附图说明
39.图1为一个示例的现有的测试系统的示意图;
40.图2为一个实施例中模拟数据发生方法的应用环境图;
41.图3为一个实施例中模拟数据发生方法的流程示意图;
42.图4为一个实施例中用户界面的示意图;
43.图5为一个实施例中在第一线程和第二线程上执行步骤的流程示意图;
44.图6为一个实施例中模拟数据发生设备的内部结构图;
45.图7为一个实施例中模拟数据发生装置的结构框图;
46.图8为一个实施例中计算机设备的内部结构图。
具体实施方式
47.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不
用于限定本技术。
48.本技术提供的模拟数据发生方法,可以应用于如图2所示的应用环境中。其中,模拟数据发生设备202通过对应的接口连接被测的数据融合系统204。数据融合系统204可以设置有多种类型的接口,例如在图1或图6的示例中,可以包括eth接口、can接口、lin接口和mipi/hdmi接口,模拟数据发生设备202分别通过这些接口与数据融合系统204连接。模拟数据发生设备202执行本技术实施例的模拟数据发生方法,以根据用户输入来生成数据包,并将数据包通过相应的接口送入数据融合系统204以进行测试。模拟数据发生设备202例如可以用个人计算机、笔记本电脑等来实现,从而无需借助于昂贵的传感器或专用设备等,仅需借助常规的计算机即可模拟发生所需的数据包送入数据融合系统204,实现对数据融合系统204的测试,有效降低了测试成本。
49.在一个实施例中,如图3所示,提供了一种模拟数据发生方法,以该方法应用于图2中的模拟数据发生设备202为例进行说明,包括以下步骤s310-s340:
50.步骤s310,通过用户界面接收用户输入,用户输入包括待发生数据的数据类型参数、数值参数、发生时间参数和目标接口参数。
51.用户界面(user interface,ui)是模拟数据发生设备202与用户进行交互的界面,模拟数据发生设备202可以在其显示屏上显示用户界面,以供用户通过模拟数据发生设备202的输入装置向模拟数据发生设备202提供用户输入。例如,参见图4所示,给出了在显示屏上显示的用户界面一个具体示例。
52.其中,数据类型参数与可对应生成的传感器数据格式可具有一一对应的关系,即,在需要模拟生成m种数据格式的情况下,即可对应定义m种数据类型参数,m为正整数。示例地,数据类型参数可以根据传感器类型、传感器信号和/或传感器生产商等来确定。例如,传感器类型可以包括摄像头、激光雷达、超声波雷达、毫米波雷达等,不同的传感器类型的传感器生成的数据一般具有不同的数据格式,则需要相应地定义为对应于不同的数据类型参数;此外,不同生产商或者不同传感器型号的同一种传感器类型的传感器也可能具有不同的数据格式,则针对这些不同数据格式的生产商或传感器型号也需要分别定义为对应于不同的数据类型参数。例如,在a公司的16线激光雷达、b公司的64线激光雷达、c公司1080p的摄像头所生成的数据具有三种不同的数据格式的情况下,则它们分别对应于三种不同的数据类型参数。示例地,在图4中,激光雷达001、激光雷达002、激光雷达003、毫米波雷达001、毫米波雷达002、毫米波雷达003、超声波雷达001、超声波雷达002、超声波雷达002、摄像头001等等设备名称,可以分别指代不同的数据类型参数,用户可以通过在下拉列表中勾选所需的设备名称,来使其用户输入包含有对应的数据类型参数。
53.其中,数值参数为用于定义所生成的数据包的取值大小的相关参数,数值参数可以具有不同的形式。例如,数值参数可以包括是否勾选随机数值的信息。当数值参数中包括随机数值未被勾选的信息时,所生成的数据包的取值可以为默认取值,或者可以为用户指定的取值,该用户指定的取值也可以包含于该数值参数中。当数值参数中包括随机数值参数被勾选的信息时,该数值参数可以进一步包括数值上限和数值下限所定义的随机数值范围,相应地,所生成的数据包取值可以为在所定义的随机数值范围内随机生成的取值。连续生成的若干个数据包在随机数值范围内的随机取值,可以模拟传感器在实际运行过程中采集数据的波动性,使得生成的数据包的取值更接近实际运行过程中的采集数据。示例地,参
见图4中所示,对于选定的激光雷达002而言,随机数值的示例是随机反射强度,当随机反射强度被勾选时,最小反射强度100-最大反射强度2000定义了随机数值范围。
54.其中,发生时间参数可以包括发送时间参数,该发送时间参数为用于定义数据包队列中每个数据包期望输出到数据融合系统的实际时刻的相关参数。发送时间参数例如可以包括初始发送时刻和发送时间间隔。进一步地,发生时间参数还可以包括模拟发生时间参数,该模拟发生时间参数为用于定义数据包队列中每个数据包将被写入的模拟发生时间戳。例如,对于某一数据包,假设发送时间参数对其指定的发送时刻为a时刻,而模拟发生时间参数对其指定的模拟发生时间戳为b时刻,则该数据包将会在a时刻被发送至数据融合系统,但是该数据包的发生时间戳将被写入为b时刻,数据融合系统在读取该数据包时,将认为该数据包中的采集数据是在b时刻所采集的,从而利用该模拟发生时间参数,可以模拟任意时刻发生的数据。示例地,参见图4中所示,对于选定的激光雷达002而言,开始时间戳666595623μs定义了初始发送时刻,而旋转速率20转/秒定义了发送时间间隔。
55.其中,目标接口参数为用于限定通过哪个接口将数据发送到数据融合系统的相关参数。目标接口参数可以根据传感器类型而确定,例如,激光雷达对应使用eth接口,毫米波雷达对应使用can接口,超声波雷达对应使用lin接口,而摄像头对应使用mipi/hdmi接口。在一些实施例中,当一种传感器类型可以有多个接口可用时,也可以由用户输入来指定选择其中哪一个可用接口。
56.步骤s320,查找预存的与数据类型参数对应的数据模板文件。
57.在执行本步骤之前,用户或研发人员可以预先在模拟数据发生设备202中存储好与各种数据类型参数对应的数据模板文件。可以根据待模拟的传感器的产品手册所定义的数据格式来定义数据模板文件,例如定义该数据格式中具有哪些数据字段,各个数据字段的类型,如string、bool、int等,使得利用每个数据模板文件可以模拟生成一种数据类型参数对应的数据格式的数据包,以代替真实传感器输出的数据包。
58.在一个实施例中,步骤s320包括:从数据模板文件集合中,查找与所述数据类型参数对应的数据模板文件;其中,所述数据模板文件集合预存有各种数据类型参数对应的数据模板文件,每个所述数据模板文件用于根据所述数值参数所确定的取值而生成具有所述取值并且模拟由所述数据类型参数代表的传感器探测的数据的数据格式的数据包。
59.步骤s330,利用数据模板文件,基于数值参数,生成数据包队列。
60.在一个实施例中,步骤s330包括:利用数据模板文件,生成具有默认取值的模板数据包;基于数值参数,重复在前一已生成数据包的数值基础上修改以对应的数值偏移量以确定当前数据包的步骤,从而生成符合数值参数的多个数据包;将多个的数据包依序送入数据包队列中。
61.进一步地,在一个实施例中,基于数值参数,重复在前一已生成数据包的数值基础上修改以对应的数值偏移量以确定当前数据包的步骤,包括:当所述数值参数中包括随机数值未被勾选的信息,且所述数值参数中不包含用户指定数值时,重复在前一已生成数据包的数值基础上修改以零数值偏移量(即,保持前一已生成数据包的数值不修改)以确定当前数据包的步骤,从而生成具有默认取值的所述多个数据包;
62.当所述数值参数中包括随机数值未被勾选的信息,且所述数值参数中包含用户指定数值时,在所述模板数据包的所述默认取值基础上修改以用户指定数值与所述默认取值
之差的数值偏移量以确定当前数据包,然后重复在前一已生成数据包的数值基础上修改以零数值偏移量以确定当前数据包的步骤,从而生成具有所述用户指定取值的所述多个数据包;
63.当所述数值参数中包括随机数值已被勾选的信息时,获取所述数值参数中的随机数值范围,重复在前一已生成数据包的数值基础上在确保当前数据包处于所述随机数值范围的前提下修改以随机数值偏移量以确定当前数据包的步骤,从而生成具有所述随机数值范围内的随机取值的多个数据包。
64.在上述实施例中,在生成了前一已生成数据包的基础上,当前数据包可以无需从零开始利用数据模板文件生成,而是可以直接将前一已生成数据包的数值修改以所需的数值偏移量,以更快速地得到当前数据包。而在替代实施例中,也可以利用数据模板文件重新生成具有所需数值的每个当前数据包。
65.示例地,参见图5所示,图5示出了实现步骤s330和步骤s340的一个具体示例。在图5中,可以分别在第一线程和第二线程两个线程上执行步骤s330和步骤s340,其中,在第一线程上,步骤s330可以包括:
66.s331,读取模板数据包;
67.其中,模板数据包不会被发送到数据包队列中;
68.s332,根据用户输入的数值参数动态修改数据包;
69.s333,生成具有指定数据格式的数据包;
70.s334,将生成的数据包写入数据包队列;
71.在此步骤中,将除了模板数据包之外的根据用户输入的数值参数而生成的各个数据包顺次写入数据包队列以用于发送。
72.s335,判断数据包队列是否达到容限?若是,则前进至步骤s336;若否,则返回到步骤s332。
73.s336,等待x个cpu时间片;
74.s337,判断是否存在停止标志?若是,则停止当前进程;若否,则返回步骤s335。
75.其中,停止标志位是一个软件全局变量,触发产生的来源有两个,第一个是指定写入队列的全部的数据包写入完毕,第二个是来源于对用户界面的停止按钮的触发。
76.步骤s340,将数据包队列中的每个数据包按照发生时间参数所指定的发送时刻发送至目标接口参数对应的目标接口。
77.在一个实施例中,步骤s340包括:基于发生时间参数,确定初始发送时刻和发送时间间隔;从数据包队列中取出首个数据包,按照初始发送时刻将首个数据包发送至目标接口参数对应的目标接口;重复按照在前一已发送数据包的发送时刻基础上加上发送时间间隔而确定的发送时刻将当前数据包发送至目标接口的步骤,直至发送完数据包队列中全部的数据包为止。
78.示例地,参见图5所示,在第二线程上,步骤s340可以包括:
79.s341,从数据包队列中取出一个数据包;
80.s342,获取当前模拟数据发生设备的时间戳;
81.s343,判断当前时间戳是否满足该数据包指定的发送时刻?若是,则前进至步骤s344;若否,则执行步骤s345,等待n个cpu时间片,然后返回步骤s342;
82.其中,对于数据包队列中的首个数据包,判断当前系统时间戳是否满足指定的发送时刻,即判断当前系统时间戳是否满足初始时刻;而对于首个数据包之后的其他数据包,判断当前系统时间戳是否满足指定的发送时刻,可以是直接判断当前系统时间戳是否满足指定的发送时刻,或者也可以是判断自上一数据包的发送时刻的时间戳至当前系统时间戳之间的时间差是否满足发送时间间隔。
83.s344,记录当前数据包的时间戳;
84.在此步骤中,在当前数据包中写入时间戳。其中,在发生时间参数中未指定模拟发生时间参数时,当前数据包中写入的时间戳可以是当前数据包实际被发送的发送时刻,而在发生时间参数中已指定有模拟发生时间参数时,当前数据包中写入的时间戳则可以是由模拟发生时间参数指定的当前数据包的模拟发生时间戳。
85.s346,将当前数据包写入发送引擎指定的目标接口;
86.s347,判断数据包队列是否为空?若是,则前进到步骤s348;若否,则返回步骤s341;
87.s348,等待x个cpu时间片;
88.s349,判断是否存在停止标志?若是,则停止当前进程;若否,则返回步骤s347。
89.其中,停止标志位是一个软件全局变量,触发产生的来源有两个,第一个是指定发送的全部的数据包发送完毕,第二个是来源于对用户界面的停止按钮的触发。
90.其中,x、n的取值可以根据发生时间间隔确定。例如,对于1mhz的cpu,间隔1ms等于等待1000个cpu时间片。
91.上述模拟数据发生方法中,通过预存的数据模板文件,根据用户输入而模拟生成具有对应的传感器的数据格式的数据包,并将这些数据包依照用户输入而按照指定的时刻发送到数据融合系统204的对应接口,从而能够根据用户的需要定制输入到数据融合系统204中用于测试的传感器数据的数量、取值和发生时间等参数,有效提升了可使用的测试数据的灵活性。
92.在一个实施例中,用户输入除了包括数据类型参数、数值参数、发生时间参数和目标接口参数之外,还可以包括故障模拟信息。所述方法在生成和/或发送数据包时,即在执行上述步骤s330和/或s340时,还根据故障模拟信息调整数据包的取值和/或数据包的发送时刻,以模拟所述故障模拟信息所对应的故障对所述数据包的取值和/或数据包的发送时刻的影响。
93.在一个实施例中,故障模拟信息可以包括数值故障模拟信息和/或发生时间故障模拟信息。
94.示例地,参见图4中所示,用户通过在信号丢失模拟栏输入参数(例如丢失持续时间5ms,以及丢失信号的信号间隔时间500000ms),可以模拟信号丢失的故障情况。用户可以例如通过是否勾选使能信号丢失项,来选择是否进行故障模拟,当用户勾选了使能信号丢失项时,则用户输入中将包括有故障模拟信息,反之,当用户不勾选使能信号丢失项时,则用户输入中可以不包括故障模拟信息。可以理解,信号丢失仅为示例的故障类型,还可以根据需求设计对不同的故障类型的模拟。
95.在一个实施例中,当故障模拟信息包括数值故障模拟信息时,上述步骤s330可以包括:利用数据模板文件,基于数值参数和数值故障模拟信息,生成数据包队列,使得数据
包队列中的数据包的取值计入了数值故障模拟信息对应的数值故障对取值的影响差量。
96.在一个实施例中,当故障模拟信息包括发生时间故障模拟信息时,上述步骤s340可以包括:将数据包队列中的每个数据包按照发生时间参数和发生时间故障模拟信息所指定的发送时刻发送至目标接口参数对应的目标接口,使得数据包的发送时刻计入了发生时间故障模拟信息对应的发生时间故障对发送时刻的影响差量。
97.上述实施例中,通过在用户输入中还包括故障模拟信息,并根据故障模拟信息而相应地调整所生成数据包的取值或发送时刻,从而能够进一步模拟在传感器发生各种故障的情况下输出传感器的模拟数据,进一步提升了向数据融合系统提供数据的灵活性,提升了测试灵活性和效率。
98.应该理解的是,虽然图3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
99.参见图6所示,图6为一个示例的模拟数据发生设备202的内部结构图。其中,模拟数据发生设备202可以包括数据包生成模块和数据包发送模块。
100.数据包生成模块通过数据格式解析器,调用预存的数据模板文件(数据模板文件定义不同传感器类型的传感器的数据格式,或者同一传感器类型不同生产商或型号的传感器的数据格式)基于数据包生成系统中默认数值参数而生成传感器的模板数据包,如生成a公司的16线激光雷达数据包、生成b公司的64线激光雷达数据包、生成c公司1080p的摄像头数据包等。
101.数据包发送模块将模板数据包加载到内存中,利用参数修改器根据数据包发送系统中由用户指定的数值参数而动态修改待发送数据包中相应数值偏移量的数值,以接续地生成数据包,将所生成的数据包依序送入数据发送引擎的数据包队列中;数据发送引擎循环将数据包队列中的数据包按照指定的发送时刻(根据时间间隔和时间戳确定)发送到指定的物理接口(如以太网口、lin口、can口等)。数据包发送模块可以通过用于对数据包进行动态修改的第一线程以及用于定时发送数据包的第二线程,将数据包依序写入指定发送的目标接口,生成接近真实传感器探测数据的模拟数据。在用户输入了故障模拟信息的情况下,还可以同时间歇性故障植入模拟信号干扰或信号丢失等真实场景,用于测试验证数据融合系统的健壮性以及数据融合的降级/升级融合策略是否正确。
102.在使用图6中所示的模拟数据发生设备202时,用户可以通过如下操作步骤,在图4中所示的用户界面进行操作以模拟生成所需数据:
103.1)根据待模拟的产品手册定义数据模板文件;
104.2)用户使用本系统的数据包生成模块,在用户界面上选择数据模板文件和相关参数后,点击开始生成,生成模板数据包;
105.3)本系统的数据模块加载模板数据包;
106.4)用户配置动态修改参数,选择发送端口或目标地址;
107.5)用户通过循环2~4步添加多个待发送的数据节点;
108.6)用户点击开始发送。
109.在图1中所示的现有的数据发生系统中,使用了真实的传感器设备来进行数据融合系统的数据融合能力测试。以激光雷达为例:1个16线的激光雷达需要数万元人民币,而1个64线激光雷达则需要数十万;而不同厂商对的传感器数据格式不一样,数据融合系统对不同数据格式解析能力存在差异,所以在需要兼容多种厂商的传感器数据时就需要购买多种传感器设备;再加上多个超声波雷达、毫米波雷达、以及多个摄像头,导致搭建一套测试系统的成本高昂。
110.而使用本技术提供的模拟数据发生设备,可以通过不同的数据模板文件定义模拟各种不同数据格式的传感器数据,同样以数据量最大的激光雷达为例,目前16线的激光雷达数据量大约为100mbit/s,以此内推64线的激光雷达不大于500mbit/s;而目前常用个人计算机已集成1000m网卡,使用本系统可以在一台普通个人计算机上即可产生多种传感器大流量的模拟数据,从而有效节省了测试成本。
111.此外,如上述实施例中已论述的,本系统还可以自由模拟定制产生各种用于被测数据融合系统需要处理的故障数据,从而提高了测试的灵活性和效率。
112.在一个实施例中,如图7所示,提供了一种模拟数据发生装置700,其可以包含于前述模拟数据发生设备202中,其包括:输入接收模块710、模板查找模块720、数据包生成模块730和数据包发送模块740,其中:
113.输入接收模块710,用于通过用户界面接收用户输入,用户输入包括待发生数据的数据类型参数、数值参数、发生时间参数和目标接口参数;
114.模板查找模块720,用于查找预存的与数据类型参数对应的数据模板文件;
115.数据包生成模块730,用于利用数据模板文件,基于数值参数,生成数据包队列;
116.数据包发送模块740,用于将数据包队列中的每个数据包按照发生时间参数所指定的发送时刻发送至目标接口参数对应的目标接口。
117.关于模拟数据发生装置700的具体限定可以参见上文中对于模拟数据发生方法的限定,在此不再赘述。上述模拟数据发生装置700中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
118.在一个实施例中,提供了一种计算机设备,该计算机设备可以用于实现本技术的模拟数据发生设备,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种模拟数据发生方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
119.本领域技术人员可以理解,图8中示出的结构,仅仅是与本技术方案相关的部分结
构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
120.在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
121.通过用户界面接收用户输入,用户输入包括待发生数据的数据类型参数、数值参数、发生时间参数和目标接口参数;
122.查找预存的与数据类型参数对应的数据模板文件;
123.利用数据模板文件,基于数值参数,生成数据包队列;
124.将数据包队列中的每个数据包按照发生时间参数所指定的发送时刻发送至目标接口参数对应的目标接口。
125.在其他实施例中,处理器执行计算机程序时还实现如上任一实施例的模拟数据发生方法的步骤。
126.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
127.通过用户界面接收用户输入,用户输入包括待发生数据的数据类型参数、数值参数、发生时间参数和目标接口参数;
128.查找预存的与数据类型参数对应的数据模板文件;
129.利用数据模板文件,基于数值参数,生成数据包队列;
130.将数据包队列中的每个数据包按照发生时间参数所指定的发送时刻发送至目标接口参数对应的目标接口。
131.在其他实施例中,计算机程序被处理器执行时还实现如上任一实施例的模拟数据发生方法的步骤。
132.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
133.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
134.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1