DvsenseDriver  1.1.2-Alpha
The SDK for dvsense products.
载入中...
搜索中...
未找到
FusionCamera.hpp
1#ifndef FUSION_CAMERA_HPP
2#define FUSION_CAMERA_HPP
3
4#include "DvsenseHal/camera/DvsCameraUtils.hpp"
5#include "DvsenseHal/EventStream/RawEventStreamFormat.hpp"
6#include "DvsenseBase/EventBase/EventTypes.hpp"
7#include "DvsenseBase/ApsBase/ApsTypes.h"
8#include "DvsenseHal/camera/tools/CameraTool.h"
9
10#ifdef _WIN32
11#define DVSENSE_API __declspec(dllexport)
12#else
13#define DVSENSE_API
14#endif // _WIN32
15namespace dvsense
16{
17
18 class DvsCameraManager;
24 class DVSENSE_API FusionCamera
25 {
26 private:
27 friend DvsCameraManager;
28
29 public:
37 {
38 cameraDesc_ = cameraDesc;
39 };
40
47 virtual const bool isConnected() = 0;
48
56 {
57 return cameraDesc_;
58 }
59
68 virtual uint32_t addEventsStreamHandleCallback(EventsStreamHandleCallback cb) = 0;
69
80 virtual bool removeEventsStreamHandleCallback(uint32_t callback_id) = 0;
81
90 virtual uint32_t addApsFrameCallback(FrameCallback cb) = 0;
91
102 virtual bool removeApsFrameCallback(uint32_t callback_id) = 0;
103
112 virtual uint32_t addSyncSignalCallback(DvsTriggerInCallback cb) = 0;
113
124 virtual bool removeSyncSignalCallback(uint32_t callback_id) = 0;
140 virtual bool getNextBatch(Event2DVector &event_batch) = 0;
141
148 virtual void setBatchEventsNum(uint64_t n) = 0;
149
156 virtual void setBatchEventsTime(TimeStamp n) = 0;
157
164 virtual int start(STREAM_TYPE type = FUSION_STREAM) = 0;
165
172 virtual int stop(STREAM_TYPE type = FUSION_STREAM) = 0;
173
174 virtual int destroy() = 0;
175
184 virtual int startRecording(std::string file_path, std::string file_name, STREAM_TYPE stream_type = FUSION_STREAM) = 0;
185
192 virtual int stopRecording(STREAM_TYPE stream_type = FUSION_STREAM) = 0;
193
200 virtual uint16_t getWidth(STREAM_TYPE type = DVS_STREAM) = 0;
201
208 virtual uint16_t getHeight(STREAM_TYPE type = DVS_STREAM) = 0;
209
216 const std::vector<ToolInfo> getAllToolsInfo();
217
226 const ToolInfo getToolInfo(ToolType type);
227
236 const std::shared_ptr<CameraTool> getTool(ToolType type);
237
244 virtual void setStatisticInfoCallback(DsStatisticInfoCallback cb) {};
245
246 virtual bool writeCalibrationFile(std::string file_path) = 0;
247
248 virtual bool readCalibrationFile(std::string file_path) = 0;
249
250
251 protected:
259
266 virtual int init() = 0;
267
268 // tools
269 std::map<ToolType, std::shared_ptr<CameraTool>> tools_;
270 };
271
272} // namespace dvsense
273
274#endif // FUSION_CAMERA_HPP
相机管理器类
定义 DvsCameraManager.hpp:35
DVS相机的接口类
定义 FusionCamera.hpp:25
virtual int destroy()=0
virtual bool getNextBatch(Event2DVector &event_batch)=0
获取下一批事件 在使用getNextBatch函数之前,您需要使用 setBatchEventsNum 设置需要获取的事件数量, 或者使用 setBatchEventsTime 设置需要获取事件的时间间...
CameraDescription cameraDesc_
获取相机描述
定义 FusionCamera.hpp:258
FusionCamera(CameraDescription cameraDesc)
构造函数
定义 FusionCamera.hpp:36
virtual uint16_t getHeight(STREAM_TYPE type=DVS_STREAM)=0
获取相机传感器的高度
const std::shared_ptr< CameraTool > getTool(ToolType type)
获取工具
virtual bool removeApsFrameCallback(uint32_t callback_id)=0
通过id移除一个回调函数
virtual bool removeEventsStreamHandleCallback(uint32_t callback_id)=0
通过id移除一个回调函数
virtual const bool isConnected()=0
检查相机是否连接
virtual int startRecording(std::string file_path, std::string file_name, STREAM_TYPE stream_type=FUSION_STREAM)=0
开始记录事件
virtual uint16_t getWidth(STREAM_TYPE type=DVS_STREAM)=0
获取相机传感器的宽度
virtual int start(STREAM_TYPE type=FUSION_STREAM)=0
启动相机
const CameraDescription getDvsDesc()
获取相机描述
定义 FusionCamera.hpp:55
virtual void setStatisticInfoCallback(DsStatisticInfoCallback cb)
设置回调函数以获取统计信息
定义 FusionCamera.hpp:244
virtual bool removeSyncSignalCallback(uint32_t callback_id)=0
通过id移除一个回调函数
std::map< ToolType, std::shared_ptr< CameraTool > > tools_
定义 FusionCamera.hpp:269
virtual uint32_t addEventsStreamHandleCallback(EventsStreamHandleCallback cb)=0
添加一个回调函数来处理事件
virtual void setBatchEventsTime(TimeStamp n)=0
设置获取事件的时间间隔
virtual uint32_t addApsFrameCallback(FrameCallback cb)=0
添加一个回调函数来处理APS视频数据
virtual void setBatchEventsNum(uint64_t n)=0
设置需要获取的事件数量
const ToolInfo getToolInfo(ToolType type)
获取工具信息
const std::vector< ToolInfo > getAllToolsInfo()
获取所有工具的信息
virtual int stopRecording(STREAM_TYPE stream_type=FUSION_STREAM)=0
停止记录事件
virtual int stop(STREAM_TYPE type=FUSION_STREAM)=0
停止相机
virtual bool readCalibrationFile(std::string file_path)=0
virtual uint32_t addSyncSignalCallback(DvsTriggerInCallback cb)=0
添加一个回调函数来处理输入触发信号
virtual bool writeCalibrationFile(std::string file_path)=0
virtual int init()=0
打开相机时,应该初始化
定义 TypeUtils.hpp:7
uint64_t TimeStamp
定义 TypeUtils.hpp:8
STREAM_TYPE
定义 DvsCameraUtils.hpp:39
用于描述相机信息的结构体
定义 DvsCameraUtils.hpp:68
工具的信息,包括类型、可以更改的参数名称和描述。
定义 ToolInfo.h:45