DvsenseDriver  1.0.3
The SDK for dvsense products.
dvsense::DvsFileReader类 参考abstract

DVS 文件读取器类 更多...

#include <DvsFileReader.h>

Public 成员函数

 DvsFileReader ()
 默认构造函数 更多...
 
virtual ~DvsFileReader ()
 虚析构函数 更多...
 
virtual bool loadFile ()=0
 加载RAW文件以处理事件。 更多...
 
virtual bool getStartTimeStamp (TimeStamp &start_timestamp)=0
 获取文件中时间戳的起始位置。 更多...
 
virtual bool getEndTimeStamp (TimeStamp &end_timestamp)=0
 获取文件中时间戳的结束位置。 更多...
 
virtual bool getMaxEvents (uint64_t &num)=0
 获取可用的最大事件数量。 更多...
 
virtual bool reachedEndOfEvents ()=0
 检查是否已经到达事件数据的末尾。 更多...
 
virtual bool seekTime (TimeStamp t)=0
 寻找文件中的特定时间戳。 更多...
 
virtual bool seekNEvents (uint64_t n_event)=0
 寻找文件中的第n个事件。 更多...
 
virtual TimeStamp getCurrentPosTimeStamp ()=0
 获取当前文件解码位置的时间戳。 更多...
 
virtual uint64_t getCurrentPosEventNum ()=0
 获取从文件开头到当前文件解码位置的事件数量。 更多...
 
virtual std::shared_ptr< Event2DVector > getNEvents (uint64_t n)=0
 从当前位置检索指定数量的事件。 更多...
 
virtual std::shared_ptr< Event2DVector > getNEventsGivenStartTimeStamp (TimeStamp start, uint64_t n)=0
 从给定的时间戳开始检索指定数量的事件。 更多...
 
virtual std::shared_ptr< Event2DVector > getNEventsGivenStartEvent (uint64_t event_num, uint64_t n)=0
 从指定位置检索特定数量的事件。 更多...
 
virtual std::shared_ptr< std::vector< Event2D > > getNTimeEvents (TimeStamp interval)=0
 从当前位置检索特定时间间隔内的事件。 更多...
 
virtual std::shared_ptr< Event2DVector > getNTimeEventsGivenStartTimeStamp (TimeStamp start, TimeStamp interval)=0
 从当前位置检索特定时间间隔内的事件。 更多...
 
virtual std::shared_ptr< std::vector< Event2D > > getNTimeEventsGivenStartEvent (uint64_t event_num, TimeStamp interval)=0
 从第 event_num 个事件开始检索特定时间间隔内的事件。 更多...
 
virtual bool extractEventData (TimeStamp start, TimeStamp end, std::string out_file_path)=0
 提取指定时间范围内的事件数据,并将结果保存到指定的输出文件中。 更多...
 
virtual bool exportEventDataToVideo (TimeStamp start, TimeStamp end, std::string out_file_path)=0
 
virtual uint16_t getWidth () const =0
 获取用于捕获事件的传感器的宽度 更多...
 
virtual uint16_t getHeight () const =0
 获取用于捕获事件的传感器的高度 更多...
 

静态 Public 成员函数

static std::unique_ptr< DvsFileReadercreateFileReader (std::string filepath)
 创建一个文件读取器对象 更多...
 

详细描述

DVS 文件读取器类

构造及析构函数说明

◆ DvsFileReader()

dvsense::DvsFileReader::DvsFileReader ( )
inline

默认构造函数

◆ ~DvsFileReader()

virtual dvsense::DvsFileReader::~DvsFileReader ( )
inlinevirtual

虚析构函数

成员函数说明

◆ createFileReader()

static std::unique_ptr<DvsFileReader> dvsense::DvsFileReader::createFileReader ( std::string  filepath)
static

创建一个文件读取器对象

参数
filepath文件路径
返回
std::unique_ptr<DvsFileReader> 创建的文件读取器的唯一指针

◆ loadFile()

virtual bool dvsense::DvsFileReader::loadFile ( )
pure virtual

加载RAW文件以处理事件。

参数
filepath要加载的RAW文件的完整路径。
返回
如果文件加载成功,则返回true,否则返回false。
注解
根据文件大小,此函数可能需要较长的时间来完成。

◆ getStartTimeStamp()

virtual bool dvsense::DvsFileReader::getStartTimeStamp ( TimeStamp start_timestamp)
pure virtual

获取文件中时间戳的起始位置。

参数
start_timestamp时间戳起始位置的引用。
返回
如果文件中有时间戳信息,则返回true。
如果文件中没有时间戳信息,则返回false。

◆ getEndTimeStamp()

virtual bool dvsense::DvsFileReader::getEndTimeStamp ( TimeStamp end_timestamp)
pure virtual

获取文件中时间戳的结束位置。

参数
end_timestamp时间戳结束位置的引用。
返回
如果文件中有时间戳信息,则返回true。
如果文件中没有时间戳信息,则返回false。

◆ getMaxEvents()

virtual bool dvsense::DvsFileReader::getMaxEvents ( uint64_t &  num)
pure virtual

获取可用的最大事件数量。

参数
num引用参数,用于存储最大事件数量。
返回
如果成功获取最大事件数量,则返回 true。
如果无法确定事件数量,则返回 false。

◆ reachedEndOfEvents()

virtual bool dvsense::DvsFileReader::reachedEndOfEvents ( )
pure virtual

检查是否已经到达事件数据的末尾。

返回
如果所有事件都已读取且没有更多数据,则返回 true。
如果仍然有未读取的事件,则返回 false。

◆ seekTime()

virtual bool dvsense::DvsFileReader::seekTime ( TimeStamp  t)
pure virtual

寻找文件中的特定时间戳。

此函数将文件当前位置移动到指定时间戳的事件。如果提供的时间戳超出范围,则当前位置将设置为文件开始或结束位置。

参数
t要寻找的目标时间戳。
返回
如果寻址操作成功,则返回true,如果未找到时间戳,则返回false。

◆ seekNEvents()

virtual bool dvsense::DvsFileReader::seekNEvents ( uint64_t  n_event)
pure virtual

寻找文件中的第n个事件。

此函数将文件当前位置移动到指定索引的事件。如果提供的事件索引超出范围,则当前位置将设置为文件开始或结束位置。

参数
t要寻找的n。
返回
如果寻址操作成功,则返回true,如果未找到事件,则返回false。

◆ getCurrentPosTimeStamp()

virtual TimeStamp dvsense::DvsFileReader::getCurrentPosTimeStamp ( )
pure virtual

获取当前文件解码位置的时间戳。

返回
TimeStamp
注解
当以固定数量的事件或固定时间间隔读取时, 当前文件位置的时间戳可能与返回的事件的时间戳不对应。

◆ getCurrentPosEventNum()

virtual uint64_t dvsense::DvsFileReader::getCurrentPosEventNum ( )
pure virtual

获取从文件开头到当前文件解码位置的事件数量。

返回
事件数量

◆ getNEvents()

virtual std::shared_ptr<Event2DVector> dvsense::DvsFileReader::getNEvents ( uint64_t  n)
pure virtual

从当前位置检索指定数量的事件。

参数
n要检索的事件数量。
返回
包含检索到的事件的 Event2DVector 的共享指针。
警告
此函数不是线程安全的,并且缓冲区将在下次调用时被覆盖。

◆ getNEventsGivenStartTimeStamp()

virtual std::shared_ptr<Event2DVector> dvsense::DvsFileReader::getNEventsGivenStartTimeStamp ( TimeStamp  start,
uint64_t  n 
)
pure virtual

从给定的时间戳开始检索指定数量的事件。

参数
start开始读取的时间戳。
n要检索的事件数量。
返回
包含检索到的事件的 Event2DVector 的共享指针。
警告
此函数不是线程安全的,并且缓冲区将在下次调用时被覆盖。

◆ getNEventsGivenStartEvent()

virtual std::shared_ptr<Event2DVector> dvsense::DvsFileReader::getNEventsGivenStartEvent ( uint64_t  event_num,
uint64_t  n 
)
pure virtual

从指定位置检索特定数量的事件。

参数
event_num开始读取的事件位置。
n要检索事件的数量。
返回
包含检索到的事件的 Event2DVector 的共享指针。
警告
此函数不是线程安全的,并且缓冲区将在下次调用时被覆盖。

◆ getNTimeEvents()

virtual std::shared_ptr<std::vector<Event2D> > dvsense::DvsFileReader::getNTimeEvents ( TimeStamp  interval)
pure virtual

从当前位置检索特定时间间隔内的事件。

参数
interval要检索事件的时间间隔。
返回
包含检索到的事件的 Event2DVector 的共享指针。
警告
此函数不是线程安全的,并且缓冲区将在下次调用时被覆盖。

◆ getNTimeEventsGivenStartTimeStamp()

virtual std::shared_ptr<Event2DVector> dvsense::DvsFileReader::getNTimeEventsGivenStartTimeStamp ( TimeStamp  start,
TimeStamp  interval 
)
pure virtual

从当前位置检索特定时间间隔内的事件。

参数
start开始读取的时间戳。
interval要检索事件的时间间隔。
返回
包含检索到的事件的 Event2DVector 的共享指针。
警告
此函数不是线程安全的,并且缓冲区将在下次调用时被覆盖。

◆ getNTimeEventsGivenStartEvent()

virtual std::shared_ptr<std::vector<Event2D> > dvsense::DvsFileReader::getNTimeEventsGivenStartEvent ( uint64_t  event_num,
TimeStamp  interval 
)
pure virtual

从第 event_num 个事件开始检索特定时间间隔内的事件。

参数
event_num开始读取的事件位置。
interval要检索事件的时间间隔。
返回
包含检索到的事件的 Event2DVector 的共享指针。
警告
此函数不是线程安全的,并且缓冲区将在下次调用时被覆盖。

◆ extractEventData()

virtual bool dvsense::DvsFileReader::extractEventData ( TimeStamp  start,
TimeStamp  end,
std::string  out_file_path 
)
pure virtual

提取指定时间范围内的事件数据,并将结果保存到指定的输出文件中。

参数
start起始时间戳,表示事件提取的开始时间。
end结束时间戳,表示事件提取的结束时间。
out_file_path输出文件的路径,提取的事件数据将被写入此文件
返回
bool 文件输出成功返回true, 反之则返回false
警告
out_file_path 需要输出完整的文件路径,且文件目录需要存在。
注解
需要注意的是,保存的文件数据并不是准确的起始时间戳,与实际提取的事件数据时间戳存在10us左右的偏差。

◆ exportEventDataToVideo()

virtual bool dvsense::DvsFileReader::exportEventDataToVideo ( TimeStamp  start,
TimeStamp  end,
std::string  out_file_path 
)
pure virtual

◆ getWidth()

virtual uint16_t dvsense::DvsFileReader::getWidth ( ) const
pure virtual

获取用于捕获事件的传感器的宽度

返回
uint16_t

◆ getHeight()

virtual uint16_t dvsense::DvsFileReader::getHeight ( ) const
pure virtual

获取用于捕获事件的传感器的高度

返回
uint16_t