DvsenseDriver  1.0.3
The SDK for dvsense products.
DvsFileReader.h
1 #ifndef DVS_FILE_READER_H
2 #define DVS_FILE_READER_H
3 
4 #ifdef _WIN32
5 #define DVSENSE_API __declspec(dllexport)
6 #else
7 #define DVSENSE_API
8 #endif // _WIN32
9 
10 #include <memory>
11 #include "DvsenseHal/camera/DvsCameraUtils.hpp"
12 #include "DvsenseBase/EventBase/EventTypes.hpp"
13 #include "DvsenseBase/Utils/TypeUtils.hpp"
14 
15 namespace dvsense
16 {
20  class DVSENSE_API DvsFileReader
21  {
22  public:
27 
31  virtual ~DvsFileReader() { };
32 
40  static std::unique_ptr<DvsFileReader> createFileReader(std::string filepath);
41 
51  virtual bool loadFile() = 0;
52 
62  virtual bool getStartTimeStamp(TimeStamp& start_timestamp) = 0;
63 
73  virtual bool getEndTimeStamp(TimeStamp& end_timestamp) = 0;
74 
84  virtual bool getMaxEvents(uint64_t &num) = 0;
85 
93  virtual bool reachedEndOfEvents() = 0;
94 
95 
111  virtual bool seekTime(TimeStamp t) = 0;
112 
123  virtual bool seekNEvents(uint64_t n_event) = 0;
124 
135 
141  virtual uint64_t getCurrentPosEventNum() = 0;
142 
152  virtual std::shared_ptr<Event2DVector> getNEvents(uint64_t n) = 0;
153 
165  virtual std::shared_ptr<Event2DVector> getNEventsGivenStartTimeStamp(TimeStamp start, uint64_t n) = 0;
166 
178  virtual std::shared_ptr<Event2DVector> getNEventsGivenStartEvent(uint64_t event_num, uint64_t n) = 0;
179 
189  virtual std::shared_ptr<std::vector<Event2D>> getNTimeEvents(TimeStamp interval) = 0;
190 
202  virtual std::shared_ptr<Event2DVector> getNTimeEventsGivenStartTimeStamp(TimeStamp start, TimeStamp interval) = 0;
203 
215  virtual std::shared_ptr<std::vector<Event2D>> getNTimeEventsGivenStartEvent(uint64_t event_num, TimeStamp interval) = 0;
216 
232  virtual bool extractEventData(TimeStamp start, TimeStamp end, std::string out_file_path) = 0;
233 
234  virtual bool exportEventDataToVideo(TimeStamp start, TimeStamp end, std::string out_file_path) = 0;
235 
242  virtual uint16_t getWidth() const = 0;
243 
250  virtual uint16_t getHeight() const = 0;
251  };
252 
257  typedef DVSENSE_API std::unique_ptr<DvsFileReader> DvsFile;
258 
259 } // namespace dvsense
260 
261 #endif //DVS_FILE_READER_H
DVS 文件读取器类
Definition: DvsFileReader.h:21
virtual std::shared_ptr< std::vector< Event2D > > getNTimeEvents(TimeStamp interval)=0
从当前位置检索特定时间间隔内的事件。
virtual bool exportEventDataToVideo(TimeStamp start, TimeStamp end, std::string out_file_path)=0
virtual bool loadFile()=0
加载RAW文件以处理事件。
virtual std::shared_ptr< Event2DVector > getNEventsGivenStartTimeStamp(TimeStamp start, uint64_t n)=0
从给定的时间戳开始检索指定数量的事件。
virtual ~DvsFileReader()
虚析构函数
Definition: DvsFileReader.h:31
virtual std::shared_ptr< Event2DVector > getNEvents(uint64_t n)=0
从当前位置检索指定数量的事件。
virtual TimeStamp getCurrentPosTimeStamp()=0
获取当前文件解码位置的时间戳。
virtual std::shared_ptr< Event2DVector > getNEventsGivenStartEvent(uint64_t event_num, uint64_t n)=0
从指定位置检索特定数量的事件。
virtual bool seekTime(TimeStamp t)=0
寻找文件中的特定时间戳。
virtual bool getEndTimeStamp(TimeStamp &end_timestamp)=0
获取文件中时间戳的结束位置。
virtual bool getStartTimeStamp(TimeStamp &start_timestamp)=0
获取文件中时间戳的起始位置。
virtual std::shared_ptr< Event2DVector > getNTimeEventsGivenStartTimeStamp(TimeStamp start, TimeStamp interval)=0
从当前位置检索特定时间间隔内的事件。
virtual uint64_t getCurrentPosEventNum()=0
获取从文件开头到当前文件解码位置的事件数量。
virtual bool reachedEndOfEvents()=0
检查是否已经到达事件数据的末尾。
static std::unique_ptr< DvsFileReader > createFileReader(std::string filepath)
创建一个文件读取器对象
virtual bool getMaxEvents(uint64_t &num)=0
获取可用的最大事件数量。
virtual uint16_t getWidth() const =0
获取用于捕获事件的传感器的宽度
virtual bool seekNEvents(uint64_t n_event)=0
寻找文件中的第n个事件。
virtual bool extractEventData(TimeStamp start, TimeStamp end, std::string out_file_path)=0
提取指定时间范围内的事件数据,并将结果保存到指定的输出文件中。
virtual std::shared_ptr< std::vector< Event2D > > getNTimeEventsGivenStartEvent(uint64_t event_num, TimeStamp interval)=0
从第 event_num 个事件开始检索特定时间间隔内的事件。
virtual uint16_t getHeight() const =0
获取用于捕获事件的传感器的高度
DvsFileReader()
默认构造函数
Definition: DvsFileReader.h:26
Definition: TypeUtils.hpp:7
DVSENSE_API std::unique_ptr< DvsFileReader > DvsFile
用于管理DVS文件读取器的unique_ptr
Definition: DvsFileReader.h:257
uint64_t TimeStamp
Definition: TypeUtils.hpp:8