CN116662140B - 一种仿真数据的自动化采集与回放方法、装置和设备 - Google Patents

一种仿真数据的自动化采集与回放方法、装置和设备 Download PDF

Info

Publication number
CN116662140B
CN116662140B CN202310906560.2A CN202310906560A CN116662140B CN 116662140 B CN116662140 B CN 116662140B CN 202310906560 A CN202310906560 A CN 202310906560A CN 116662140 B CN116662140 B CN 116662140B
Authority
CN
China
Prior art keywords
data
playback
simulation
information
index information
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
Application number
CN202310906560.2A
Other languages
English (en)
Other versions
CN116662140A (zh
Inventor
鞠儒生
刘晓阳
焦鹏
刘吉元
秦龙
许凯
尹帮虎
谢旭
曾云秀
曾俊杰
石超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN202310906560.2A priority Critical patent/CN116662140B/zh
Publication of CN116662140A publication Critical patent/CN116662140A/zh
Application granted granted Critical
Publication of CN116662140B publication Critical patent/CN116662140B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3457Performance evaluation by simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3404Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for parallel or distributed programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请涉及一种仿真数据的自动化采集与回放方法、装置和设备。所述方法包括:通过定义数据采集配置文件实现多个仿真平台通用的数据自动化采集,开启多个线程对多个仿真平台的数据流进行分布式多线程数据接收和处理,对接收到的每个数据流建立时间索引信息和关键事件索引信息后进行封装;对应地建立数据回放配置文件,仿真数据回放时,根据数据回放配置文件基于数据封装时的时间索引信息或关键事件索引信息确定回放起始位置,根据回放起始位置读取回放数据并进行解封装,将解封装后的数据重新实例化后发给仿真中间件进行回放。本发明解决了多平台数据自动采集,以及指定分段回放的问题,减少重复开发,实现系统最大重用。

Description

一种仿真数据的自动化采集与回放方法、装置和设备
技术领域
本申请涉及计算机技术领域,特别是涉及一种仿真数据的自动化采集与回放方法、装置和设备。
背景技术
随着仿真试验项目的进展,每次大量试验都会产生对应的仿真数据,这些仿真数据将会用于试验情况在线评估、回放和复盘等多个方面。
仿真试验时,有仿真模型、仿真引擎和仿真中间件三个仿真试验平台协同工作,每种平台在演练过程中产生的数据和格式都存在不同的差异,对数据自动采集工作造成了很大影响。另外系统不灵活,无法指定某一段数据进行回放,只能通过单一的文件数据或者数据库数据进行回放,且只能顺序回放。因此,现有技术存在适应性不佳的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够实现用户指定的数据库和文件数据的回放功能的仿真数据的自动化采集与回放方法、装置、计算机设备和存储介质。
一种仿真数据的自动化采集与回放方法,所述方法包括:
定义数据采集配置文件;所述数据采集配置文件中包括多个仿真平台的数据采集成员信息,以及用户在人机界面确定的配置线程信息;所述多个仿真平台包括仿真中间件、仿真引擎和仿真模型;
仿真数据采集时,根据所述配置线程信息开启多个线程对所述多个仿真平台的数据流进行分布式多线程数据接收和处理,对接收到的每个数据流建立时间索引信息和关键事件索引信息后进行封装;其中,所述时间索引信息由仿真时间确定;所述关键事件索引信息由所述数据采集成员信息确定;
获取数据回放配置文件;所述数据回放配置文件由所述数据采集成员信息,以及用户在人机界面确定的回放需求信息构成;
仿真数据回放时,根据所述数据回放配置文件确定时间索引信息或关键事件索引信息,根据所述时间索引信息或所述关键事件索引信息确定回放起始位置,根据所述回放起始位置读取回放数据并进行解封装,将解封装后的数据重新实例化后发给所述仿真中间件进行回放。
在其中一个实施例中,还包括:所述数据采集成员信息包括数据采集成员对象类和交互类数据的类型和格式;所述数据采集成员代表不同的仿真平台、仿真事件、或仿真实验类型。
在其中一个实施例中,还包括:所述配置线程信息包括对象类、交互类数据接收线程的数量,以及对象类、交互类数据处理线程的数量。
在其中一个实施例中,还包括:根据所述对象类、交互类数据接收线程的数量开启多个对象类数据接收线程接收对象类数据放入对应的对象类队列中,开启多个交互类数据接收线程接收交互类数据放入对应的交互类队列中;
根据所述对象类、交互类数据处理线程的数量开启多个数据处理线程,处理所述对象类队列和所述交互类队列中接收到的数据。
在其中一个实施例中,还包括:在接收到的每个数据流前加上数据头信息构成数据块;其中,所述数据头信息中包括时间索引信息和关键事件索引信息;所述时间索引信息由仿真时间确定;所述关键事件索引信息由所述采集成员信息中的类名信息确定;
在所述数据块前加上时间缓存信息写入缓存;所述时间缓存信息包括每个数据buf位置和仿真时间。
在其中一个实施例中,还包括:所述回放需求信息包括:回放起始时间、指定回放关键事件、回放进度、回放数据文件或数据库选择。
在其中一个实施例中,还包括:根据所述回放起始位置读取回放数据;
将所述回放数据中的数据头信息、时间缓存信息和帧头信息去除,得到原始数据。
在其中一个实施例中,还包括:根据所述数据采集成员信息确定所述原始数据对应的原始对象类和实例信息;
根据所述原始对象类和实例信息重新注册实例,生成新的实例id;
根据所述新的实例id更新所述原始数据,将更新后的数据发给所述仿真中间件进行回放。
一种仿真数据的自动化采集与回放装置,所述装置包括:
数据采集配置文件确定模块,用于定义数据采集配置文件;所述数据采集配置文件中包括多个仿真平台的数据采集成员信息,以及用户在人机界面确定的配置线程信息;所述多个仿真平台包括仿真中间件、仿真引擎和仿真模型;
数据采集模块,用于仿真数据采集时,根据所述配置线程信息开启多个线程对所述多个仿真平台的数据流进行分布式多线程数据接收和处理,对接收到的每个数据流建立时间索引信息和关键事件索引信息后进行封装;其中,所述时间索引信息由仿真时间确定;所述关键事件索引信息由所述数据采集成员信息确定;
数据回放配置文件确定模块,用于获取数据回放配置文件;所述数据回放配置文件由所述数据采集成员信息,以及用户在人机界面确定的回放需求信息构成;
数据回放模块,用于仿真数据回放时,根据所述数据回放配置文件确定时间索引信息或关键事件索引信息,根据所述时间索引信息或所述关键事件索引信息确定回放起始位置,根据所述回放起始位置读取回放数据并进行解封装,将解封装后的数据重新实例化后发给所述仿真中间件进行回放。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
定义数据采集配置文件;所述数据采集配置文件中包括多个仿真平台的数据采集成员信息,以及用户在人机界面确定的配置线程信息;所述多个仿真平台包括仿真中间件、仿真引擎和仿真模型;
仿真数据采集时,根据所述配置线程信息开启多个线程对所述多个仿真平台的数据流进行分布式多线程数据接收和处理,对接收到的每个数据流建立时间索引信息和关键事件索引信息后进行封装;其中,所述时间索引信息由仿真时间确定;所述关键事件索引信息由所述数据采集成员信息确定;
获取数据回放配置文件;所述数据回放配置文件由所述数据采集成员信息,以及用户在人机界面确定的回放需求信息构成;
仿真数据回放时,根据所述数据回放配置文件确定时间索引信息或关键事件索引信息,根据所述时间索引信息或所述关键事件索引信息确定回放起始位置,根据所述回放起始位置读取回放数据并进行解封装,将解封装后的数据重新实例化后发给所述仿真中间件进行回放。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
定义数据采集配置文件;所述数据采集配置文件中包括多个仿真平台的数据采集成员信息,以及用户在人机界面确定的配置线程信息;所述多个仿真平台包括仿真中间件、仿真引擎和仿真模型;
仿真数据采集时,根据所述配置线程信息开启多个线程对所述多个仿真平台的数据流进行分布式多线程数据接收和处理,对接收到的每个数据流建立时间索引信息和关键事件索引信息后进行封装;其中,所述时间索引信息由仿真时间确定;所述关键事件索引信息由所述数据采集成员信息确定;
获取数据回放配置文件;所述数据回放配置文件由所述数据采集成员信息,以及用户在人机界面确定的回放需求信息构成;
仿真数据回放时,根据所述数据回放配置文件确定时间索引信息或关键事件索引信息,根据所述时间索引信息或所述关键事件索引信息确定回放起始位置,根据所述回放起始位置读取回放数据并进行解封装,将解封装后的数据重新实例化后发给所述仿真中间件进行回放。
上述仿真数据的自动化采集与回放方法、装置、计算机设备和存储介质,通过定义数据采集配置文件实现多个仿真平台通用的数据自动化采集,开启多个线程对多个仿真平台的数据流进行分布式多线程数据接收和处理,对接收到的每个数据流建立时间索引信息和关键事件索引信息后进行封装;对应地建立数据回放配置文件,仿真数据回放时,根据数据回放配置文件基于数据封装时的时间索引信息或关键事件索引信息确定回放起始位置,根据回放起始位置读取回放数据并进行解封装,将解封装后的数据重新实例化后发给仿真中间件进行回放。本发明将具体应用相关部分与通用部分相分开,解决了多平台数据自动采集,以及指定分段回放的问题,实现“特性”与“共性”的分离,减少重复开发,实现系统最大重用。
附图说明
图1为一个实施例中仿真数据的自动化采集与回放方法的流程示意图;
图2为一个实施例中数据采集模块图;
图3为一个实施例中数据帧结构示意图;
图4为一个实施例中数据采集与回放系统示意图;
图5为一个实施例中数据采集流程示意图;
图6为一个实施例中数据回放流程示意图;
图7为一个实施例中仿真数据的自动化采集与回放装置的结构框图;
图8为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种仿真数据的自动化采集与回放方法,包括以下步骤:
步骤102,定义数据采集配置文件。
数据采集配置文件中包括多个仿真平台的基础信息配置数据和数据采集成员信息,这些信息为共性,其特性是可以配置多个仿真平台的信息,来同时采集多个平台的数据,以及用户在人机界面确定的配置线程信息;多个仿真平台包括仿真中间件、仿真引擎和仿真模型。
为了实现多平台数据采集的自动化功能,本发明定义了数据采集配置文件,通过提前配置数据采集的信息,实现任意仿真平台的数据识别和采集,无需在仿真平台发生改变时重新编辑代码。具体地,配置好采集数据的信息后,启动仿真中间件,数据采集系统,仿真引擎和仿真模型会陆续加入演练单元开始数据采集。
由于数据量巨大,采用多线程进行数据采集,能够充分利用多处理器的可并行数量,解决数据量大时需要等待慢速I/O操作结束才去执行后续任务的问题,从而提升采集的效率。配置线程信息也是在数据采集配置文件中设定,有数据采集类线程,也有数据处理类线程,同时也将对象类和交互类数据的采集和处理分在不同的线程进行。
步骤104,仿真数据采集时,根据配置线程信息开启多个线程对多个仿真平台的数据流进行分布式多线程数据接收和处理,对接收到的每个数据流建立时间索引信息和关键事件索引信息后进行封装。
其中,时间索引信息由仿真时间确定;关键事件索引信息由数据采集成员信息确定。
本发明在进行数据采集时,由于预先设置了数据采集配置文件,能够对多个仿真系统的数据进行无差别的“通用”采集,进而能够进行“通用”处理。不局限于某个具体的仿真演练单元,本发明在进行数据封装时,可以通过在数据流前面加上关于时间索引或关键事件索引的附加信息,从而实现后续数据回放时的可选择性。
步骤106,获取数据回放配置文件。
数据回放配置文件由数据采集成员信息,以及用户在人机界面确定的回放需求信息构成。
对应于数据采集配置文件和索引信息的建立,本发明针对数据回放,设计了数据回放配置文件,数据回放配置文件中的信息一方面来自于数据采集配置文件,实现了关于仿真平台的信息约束,另一方面来自于用于在人机交互界面输入的回访需求信息,实现了关于用户个性化需求的信息约束。
步骤108,仿真数据回放时,根据数据回放配置文件确定时间索引信息或关键事件索引信息,根据时间索引信息或关键事件索引信息确定回放起始位置,根据回放起始位置读取回放数据并进行解封装,将解封装后的数据重新实例化后发给仿真中间件进行回放。
数据解封装及回放功能主要过程如下:
a、回放信息配置:根据回放需求配置回放起始时间、指定回放关键事件、回放进度、回放数据文件和数据库选择等参数,其中回放起始时间和指定回放关键事件的设置实现了大量数据分段回放的功能,减少了数据的冗余回放,回放速度的设置可以控制回放的快进和倒退功能,回放数据文件和数据库的配置实现了回放数据文件可以自由选择的通用性。
b、数据解封装:通过读取数据文件中的数据,按照数据采集时封装的逆向过程对数据进行解封装得到真正的data数据。数据解封主要是去掉数据采集时在数据前面添加的仿真时间、类名、数据块大小等信息,把数据块还原成从中间件采集到的原始数据data结构,从而用于数据的回放。
数据处理发送:根据采集过程存储的对象类和实例信息,回放时需要读取原始对象类和实例信息重新注册实例,生成新的实例id,然后修改原始数据data中的实例id,再把更新的数据data发给中间件,供其他成员调试或者复盘使用。
上述仿真数据的自动化采集与回放方法中,通过定义数据采集配置文件实现多个仿真平台通用的数据自动化采集,开启多个线程对多个仿真平台的数据流进行分布式多线程数据接收和处理,对接收到的每个数据流建立时间索引信息和关键事件索引信息后进行封装;对应地建立数据回放配置文件,仿真数据回放时,根据数据回放配置文件基于数据封装时的时间索引信息或关键事件索引信息确定回放起始位置,根据回放起始位置读取回放数据并进行解封装,将解封装后的数据重新实例化后发给仿真中间件进行回放。本发明将具体应用相关部分与通用部分相分开,解决了多平台数据自动采集,以及指定分段回放的问题,实现“特性”与“共性”的分离,减少重复开发,实现系统最大重用。
在其中一个实施例中,还包括:数据采集成员信息包括数据采集成员对象类和交互类数据的类型和格式;数据采集成员代表不同的仿真平台、仿真事件、或仿真实验类型。
对象类主要包含公交车、小轿车、摩托车、无人机、人等对象,交互类主要包括受伤、摔跤、追尾、碰撞、遥控命令等信息。常见数据采集都是单个平台单独采集,采集速度慢,不同平台的数据处理繁。本系统多个平台数据同时采集提升了采集效率,也提高了数据处理效率,适应于更多采集场景。
在其中一个实施例中,还包括:配置线程信息包括对象类、交互类数据接收线程的数量,以及对象类、交互类数据处理线程的数量。
在其中一个实施例中,还包括:根据对象类、交互类数据接收线程的数量开启多个对象类数据接收线程接收对象类数据放入对应的对象类队列中,开启多个交互类数据接收线程接收交互类数据放入对应的交互类队列中;根据对象类、交互类数据处理线程的数量开启多个数据处理线程,处理对象类队列和交互类队列中接收到的数据。
数据采集相关的线程和仿真平台仿真线程同时运行。
在其中一个实施例中,还包括:在接收到的每个数据流前加上数据头信息构成数据块;其中,数据头信息中包括时间索引信息和关键事件索引信息;时间索引信息由仿真时间确定;关键事件索引信息由采集成员信息中的类名信息确定;在数据块前加上时间缓存信息写入缓存;时间缓存信息记载了每个数据buf位置和仿真时间,用于后续回放时方便解析数据文件中的每个buf。
在一个具体实施例中,数据采集模块功能如图2所示,配置好采集配置文件后,进行模拟数据采集。
在数据采集时,首先开启两个线程定时查询对象类和交互类队列中是否有数据,队列中只要有数据就把数据data依次取出来并进行封装存入文件。封装的过程如下:在取出的数据data前加上数据头(数据头包括仿真时间simtime、类名className、数据data大小dataSize等信息)组成对应的对象类数据块和交互类数据块。为了防止频繁写文件,定义了两个指定大小的中间缓存分别是对象类缓存和交互类缓存,先把数据块前加上时间缓存(时间缓存信息包括仿真时间_time、数据块起始位置posInDataBuffer等信息)分别放到对应的缓存中,当缓存达到指定大小后就把当前缓存中的数据帧加上帧头(帧头包括数据帧的大小nFrameDataSize、帧内仿真数据开始时间戳dBeginTimeStamp、帧内仿真数据结束时间戳dEndTimeStamp、帧内仿真时间戳数量nTimeStameCount、当前帧帧头地址nCurFrameAddrss、下一帧帧头地址nNextFrameAddrss等信息)写入对应的对象类过程数据文件和交互类过程数据文件,并且在数据首次写入文件时需要添加文件头信息。如此循环写文件,提高了写文件性能和速度。
如图3所示,数据帧的结构包括帧头、时间缓存、数据头和数据缓存。其中帧头又由数据帧的大小、帧内仿真数据开始时间戳、帧内仿真数据结束时间戳、帧内仿真时间戳数量、当前帧头地址和下一帧帧头地址组成。时间缓存结构由仿真时间、数据块起始位置和数据个数信息组成。数据头包含仿真时间、对象类或者交互类的名称、类名长度以及数据大小信息。
在其中一个实施例中,还包括:回放需求信息包括:回放起始时间、指定回放关键事件、回放进度、回放数据文件或数据库选择。
在其中一个实施例中,还包括:根据回放起始位置读取回放数据;将回放数据中的数据头信息、时间缓存信息和帧头信息去除,得到原始数据。根据数据采集成员信息确定原始数据对应的原始对象类和实例信息;根据原始对象类和实例信息重新注册实例,生成新的实例id;根据新的实例id更新原始数据,将更新后的数据发给仿真中间件进行回放。
在一个具体实施例中,数据采集与回放系统结构如图4,主要包含三大功能:数据采集、数据封装并存入文件、数据解封装并回放等功能。其中数据采集又细分为采集中间件数据、采集仿真引擎数据和采集仿真模型的数据。数据封装并存入文件又包含数据的封装和数据存入文件两个部分。数据解封装并回放又包含读取文件数据并解封装和数据回放到中间件。
(1)数据采集流程如下:
如图5所示,首先点击开始采集StartSimu,进行数据采集的信息配置,创建数据存储文件,接下来进行JLink初始化JLinkInit,包括创建演练单元CreateExercise,演练单元加入演练JoinExercise,获取对象类GetObjectClassHandle和交互类GetInteractionClassHandle的信息,声明公布订购关系JLinkSetPubAndSub,订购对象类GetObjectClassHandle和交互类GetInteractionClassHandle等。然后启动仿真线程SelfSimulation,开启对象类数据采集线程thread_WriteData和交互类数据采集线程thread_WriteDataIntera,以及采集对象类对应关系信息的线程thread_WriteClassObjectData(该文件主要存储对象类名称和实例名、实例句柄等信息,用于回放时根据对象类对应关系文件里的实例名来重新注册实例产生新的实例句柄ID),至此数据采集启动完毕,开始数据采集并存入文件或者数据库,数据采集完成后点击停止采集StopSimu。
(2)数据回放流程如下:
如图6所示,首先点击开始数据回放StartSimuForReplay,读取数据回放的配置信息,从文件中读取需要注册的对象实例信息,获取仿真模型信息,JLink初始化JLinkInitForReplay,包括创建演练单元CreateExercise,演练单元加入演练JoinExercise,获取对象类GetObjectClassHandle和交互类GetInteractionClassHandle的信息,声明公布信息JLinkSetPub,注册实例并把类和实例名实例id存入map中,然后开始启动仿真回放线程SelfSimulationReplay用于定时把回放的数据发给中间件,启动对象类数据回放线程thread_ReplayData用于定时读取文件中需要回放的数据,并对数据进行解封装,然后更新数据中最新的实例id,存入队列中供仿真回放线程取数据,启动交互类数据回放线程thread_ReplayInteraData用于定时读取文件中需要回放的数据,并对数据进行解封装,存入队列中供仿真回放线程取数据,回放完成后点击停止回放。
应该理解的是,虽然图1、图5、图6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1、图5、图6中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图7所示,提供了一种仿真数据的自动化采集与回放装置,包括:数据采集配置文件确定模块702、数据采集模块704、数据回放配置文件确定模块706和数据回放模块708,其中:
数据采集配置文件确定模块702,用于定义数据采集配置文件;数据采集配置文件中包括多个仿真平台的数据采集成员信息,以及用户在人机界面确定的配置线程信息;多个仿真平台包括仿真中间件、仿真引擎和仿真模型;
数据采集模块704,用于仿真数据采集时,根据配置线程信息开启多个线程对多个仿真平台的数据流进行分布式多线程数据接收和处理,对接收到的每个数据流建立时间索引信息和关键事件索引信息后进行封装;其中,时间索引信息由仿真时间确定;关键事件索引信息由数据采集成员信息确定;
数据回放配置文件确定模块706,用于获取数据回放配置文件;数据回放配置文件由数据采集成员信息,以及用户在人机界面确定的回放需求信息构成;
数据回放模块708,用于仿真数据回放时,根据数据回放配置文件确定时间索引信息或关键事件索引信息,根据时间索引信息或关键事件索引信息确定回放起始位置,根据回放起始位置读取回放数据并进行解封装,将解封装后的数据重新实例化后发给仿真中间件进行回放。
数据采集模块704还用于根据对象类、交互类数据接收线程的数量开启多个对象类数据接收线程接收对象类数据放入对应的对象类队列中,开启多个交互类数据接收线程接收交互类数据放入对应的交互类队列中;根据对象类、交互类数据处理线程的数量开启多个数据处理线程,处理对象类队列和交互类队列中接收到的数据。
数据采集模块704还用于在接收到的每个数据流前加上数据头信息构成数据块;其中,数据头信息中包括时间索引信息和关键事件索引信息;时间索引信息由仿真时间确定;关键事件索引信息由采集成员信息中的类名信息确定;在数据块前加上时间缓存信息写入缓存;当缓存达到指定大小时加上帧头信息构成数据帧,将数据帧写入文件。
数据回放模块708还用于根据回放起始位置读取回放数据;将回放数据中的数据头信息、时间缓存信息和帧头信息去除,得到原始数据。
数据回放模块708还用于根据数据采集成员信息确定原始数据对应的原始对象类和实例信息;根据原始对象类和实例信息重新注册实例,生成新的实例id;根据新的实例id更新原始数据,将更新后的数据发给仿真中间件进行回放。
关于仿真数据的自动化采集与回放装置的具体限定可以参见上文中对于仿真数据的自动化采集与回放方法的限定,在此不再赘述。上述仿真数据的自动化采集与回放装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种仿真数据的自动化采集与回放方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现上述方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (9)

1.一种仿真数据的自动化采集与回放方法,其特征在于,所述方法包括:
定义数据采集配置文件;所述数据采集配置文件中包括多个仿真平台的数据采集成员信息,以及用户在人机界面确定的配置线程信息;所述多个仿真平台包括仿真中间件、仿真引擎和仿真模型;
仿真数据采集时,根据所述配置线程信息开启多个线程对所述多个仿真平台的数据流进行分布式多线程数据接收和处理,对接收到的每个数据流建立时间索引信息和关键事件索引信息后进行封装;其中,所述时间索引信息由仿真时间确定;所述关键事件索引信息由所述数据采集成员信息确定;所述数据采集成员信息包括数据采集成员对象类和交互类数据的类型和格式;所述数据采集成员代表不同的仿真平台、仿真事件、或仿真实验类型;
获取数据回放配置文件;所述数据回放配置文件由所述数据采集成员信息,以及用户在人机界面确定的回放需求信息构成;
仿真数据回放时,根据所述数据回放配置文件确定时间索引信息或关键事件索引信息,根据所述时间索引信息或所述关键事件索引信息确定回放起始位置,根据所述回放起始位置读取回放数据并进行解封装,将解封装后的数据重新实例化后发给所述仿真中间件进行回放。
2.根据权利要求1所述的方法,其特征在于,所述配置线程信息包括对象类、交互类数据接收线程的数量,以及对象类、交互类数据处理线程的数量。
3.根据权利要求1所述的方法,其特征在于,根据所述配置线程信息开启多个线程对所述多个仿真平台的数据流进行分布式多线程数据接收和处理,包括:
根据所述对象类、交互类数据接收线程的数量开启多个对象类数据接收线程接收对象类数据放入对应的对象类队列中,开启多个交互类数据接收线程接收交互类数据放入对应的交互类队列中;
根据所述对象类、交互类数据处理线程的数量开启多个数据处理线程,处理所述对象类队列和所述交互类队列中接收到的数据。
4.根据权利要求1所述的方法,其特征在于,对接收到的每个数据流建立时间索引信息和关键事件索引信息后进行封装;其中,所述时间索引信息由仿真时间确定;所述关键事件索引信息由所述数据采集成员信息确定,包括:
在接收到的每个数据流前加上数据头信息构成数据块;其中,所述数据头信息中包括时间索引信息和关键事件索引信息;所述时间索引信息由仿真时间确定;所述关键事件索引信息由所述采集成员信息中的类名信息确定;
在所述数据块前加上时间缓存信息写入缓存;所述时间缓存信息包括每个数据buf位置和仿真时间。
5.根据权利要求4所述的方法,其特征在于,所述回放需求信息包括:回放起始时间、指定回放关键事件、回放进度、回放数据文件或数据库选择。
6.根据权利要求5所述的方法,其特征在于,根据所述回放起始位置读取回放数据并进行解封装,包括:
根据所述回放起始位置读取回放数据;
将所述回放数据中的数据头信息、时间缓存信息和帧头信息去除,得到原始数据。
7.根据权利要求6所述的方法,其特征在于,将解封装后的数据重新实例化后发给所述仿真中间件进行回放,包括:
根据所述数据采集成员信息确定所述原始数据对应的原始对象类和实例信息;
根据所述原始对象类和实例信息重新注册实例,生成新的实例id;
根据所述新的实例id更新所述原始数据,将更新后的数据发给所述仿真中间件进行回放。
8.一种仿真数据的自动化采集与回放装置,其特征在于,所述装置包括:
数据采集配置文件确定模块,用于定义数据采集配置文件;所述数据采集配置文件中包括多个仿真平台的数据采集成员信息,以及用户在人机界面确定的配置线程信息;所述多个仿真平台包括仿真中间件、仿真引擎和仿真模型;所述数据采集成员信息包括数据采集成员对象类和交互类数据的类型和格式;所述数据采集成员代表不同的仿真平台、仿真事件、或仿真实验类型;
数据采集模块,用于仿真数据采集时,根据所述配置线程信息开启多个线程对所述多个仿真平台的数据流进行分布式多线程数据接收和处理,对接收到的每个数据流建立时间索引信息和关键事件索引信息后进行封装;其中,所述时间索引信息由仿真时间确定;所述关键事件索引信息由所述数据采集成员信息确定;
数据回放配置文件确定模块,用于获取数据回放配置文件;所述数据回放配置文件由所述数据采集成员信息,以及用户在人机界面确定的回放需求信息构成;
数据回放模块,用于仿真数据回放时,根据所述数据回放配置文件确定时间索引信息或关键事件索引信息,根据所述时间索引信息或所述关键事件索引信息确定回放起始位置,根据所述回放起始位置读取回放数据并进行解封装,将解封装后的数据重新实例化后发给所述仿真中间件进行回放。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
CN202310906560.2A 2023-07-24 2023-07-24 一种仿真数据的自动化采集与回放方法、装置和设备 Active CN116662140B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310906560.2A CN116662140B (zh) 2023-07-24 2023-07-24 一种仿真数据的自动化采集与回放方法、装置和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310906560.2A CN116662140B (zh) 2023-07-24 2023-07-24 一种仿真数据的自动化采集与回放方法、装置和设备

Publications (2)

Publication Number Publication Date
CN116662140A CN116662140A (zh) 2023-08-29
CN116662140B true CN116662140B (zh) 2023-10-03

Family

ID=87715545

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310906560.2A Active CN116662140B (zh) 2023-07-24 2023-07-24 一种仿真数据的自动化采集与回放方法、装置和设备

Country Status (1)

Country Link
CN (1) CN116662140B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106250468A (zh) * 2016-07-29 2016-12-21 捷开通讯(深圳)有限公司 环境信息的存储方法、回放方法、存储回放系统及终端
CN112559153A (zh) * 2020-12-21 2021-03-26 北京仿真中心 一种多线程和多进程一体的仿真模型组件调度方法和系统
CN113411229A (zh) * 2021-06-08 2021-09-17 杭州迦智科技有限公司 一种数据处理、回放数据获取方法及装置、可移动平台
CN113722271A (zh) * 2021-07-20 2021-11-30 湖南艾科诺维科技有限公司 用于数据采集回放的文件管理方法、系统及介质
CN113934883A (zh) * 2021-10-13 2022-01-14 北京图安世纪科技股份有限公司 一种多类型数据同步回放展示方法与装置
CN115080663A (zh) * 2022-06-28 2022-09-20 成都数联云算科技有限公司 一种分布式数据库同步方法及系统及装置及介质
WO2022237866A1 (zh) * 2021-05-12 2022-11-17 中移智行网络科技有限公司 一种车路协同系统、模拟仿真方法、车载设备和路侧设备
CN116455956A (zh) * 2023-06-16 2023-07-18 中国人民解放军国防科技大学 一种基于消息中间件的数据采集和数据回放的方法和系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106250468A (zh) * 2016-07-29 2016-12-21 捷开通讯(深圳)有限公司 环境信息的存储方法、回放方法、存储回放系统及终端
CN112559153A (zh) * 2020-12-21 2021-03-26 北京仿真中心 一种多线程和多进程一体的仿真模型组件调度方法和系统
WO2022237866A1 (zh) * 2021-05-12 2022-11-17 中移智行网络科技有限公司 一种车路协同系统、模拟仿真方法、车载设备和路侧设备
CN113411229A (zh) * 2021-06-08 2021-09-17 杭州迦智科技有限公司 一种数据处理、回放数据获取方法及装置、可移动平台
CN113722271A (zh) * 2021-07-20 2021-11-30 湖南艾科诺维科技有限公司 用于数据采集回放的文件管理方法、系统及介质
CN113934883A (zh) * 2021-10-13 2022-01-14 北京图安世纪科技股份有限公司 一种多类型数据同步回放展示方法与装置
CN115080663A (zh) * 2022-06-28 2022-09-20 成都数联云算科技有限公司 一种分布式数据库同步方法及系统及装置及介质
CN116455956A (zh) * 2023-06-16 2023-07-18 中国人民解放军国防科技大学 一种基于消息中间件的数据采集和数据回放的方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HLA仿真结果数据库设计及其应用研究;鞠儒生 等;系统仿真学报;第18卷(第2期);第327-330页 *

Also Published As

Publication number Publication date
CN116662140A (zh) 2023-08-29

Similar Documents

Publication Publication Date Title
KR102525502B1 (ko) 자동운전 테스트 데이터 저장 방법, 장치, 전자 기기, 저장 매체 및 프로그램
CN110221983B (zh) 测试方法、装置、计算机可读存储介质和计算机设备
CN107809467B (zh) 一种云环境下容器镜像数据的删减方法
CN105074671A (zh) 用于在内核模块和设备驱动程序中检测并发编程错误的方法和系统
CN112445757A (zh) 可视化日志存储和回溯方法、装置和计算机设备
CN109683825B (zh) 一种存储系统在线数据压缩方法、装置及设备
CN110597704B (zh) 应用程序的压力测试方法、装置、服务器和介质
CN109147091B (zh) 无人车数据的处理方法、装置、设备和存储介质
CN109542341B (zh) 一种读写io监测方法、装置、终端及计算机可读存储介质
CN113050020B (zh) 双芯智能电表的超差事件记录方法、装置和计算机设备
CN113569234B (zh) 一种用于安卓攻击场景重建的可视化取证系统及实现方法
CN116662140B (zh) 一种仿真数据的自动化采集与回放方法、装置和设备
US10430115B2 (en) System and method for optimizing multiple packaging operations in a storage system
CN108986253A (zh) 用于存储数据的方法、装置、设备和计算机可读存储介质
CN115858456A (zh) 自动驾驶车辆数据采集系统及方法
CN111737223B (zh) 一种文件拷贝方法、装置、设备及存储介质
CN113760696A (zh) 一种程序问题定位方法、装置、电子设备和存储介质
CN112613257A (zh) 验证方法、装置、电子设备和计算机可读存储介质
CN106844228B (zh) 轻量级sd卡分区管理实现方法及装置
CN115174680B (zh) 可视化数据播放方法、装置、系统、设备及可读存储介质
CN113609124B (zh) 一种具有可扩展性的数据记录存储方法及系统
CN113360454B (zh) 一种内存快照文件的压缩、解压缩方法及相关装置
CN105830042B (zh) 利用描述读取和写入请求的数据迁移系统和方法
CN112329500B (zh) 基于离散帧的场景段实现方法、装置及存储介质
CN116188247B (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