DvsenseDriver  1.1.3
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 "DvsenseBase/Utils/TypeUtils.hpp"
9#include "DvsenseHal/camera/tools/CameraTool.h"
10
11#ifdef _WIN32
12#define DVSENSE_API __declspec(dllexport)
13#else
14#define DVSENSE_API
15#endif // _WIN32
16namespace dvsense
17{
18
19 class DvsCameraManager;
25 class DVSENSE_API FusionCamera
26 {
27 private:
28 friend DvsCameraManager;
29
30 public:
38 {
39 cameraDesc_ = cameraDesc;
40 };
41
48 virtual const bool isConnected() = 0;
49
57 {
58 return cameraDesc_;
59 }
60
69 virtual uint32_t addEventsStreamHandleCallback(EventsStreamHandleCallback cb) = 0;
70
81 virtual bool removeEventsStreamHandleCallback(uint32_t callback_id) = 0;
82
91 virtual uint32_t addApsFrameCallback(FrameCallback cb) = 0;
92
103 virtual bool removeApsFrameCallback(uint32_t callback_id) = 0;
104
113 virtual uint32_t addSyncSignalCallback(DvsTriggerInCallback cb) = 0;
114
125 virtual bool removeSyncSignalCallback(uint32_t callback_id) = 0;
141 virtual bool getNextBatch(Event2DVector &event_batch) = 0;
142
149 virtual void setBatchEventsNum(uint64_t n) = 0;
150
157 virtual void setBatchEventsTime(TimeStamp n) = 0;
158
165 virtual int start(STREAM_TYPE type = FUSION_STREAM) = 0;
166
173 virtual int stop(STREAM_TYPE type = FUSION_STREAM) = 0;
174
175 virtual int destroy() = 0;
176
185 virtual int startRecording(std::string file_path, std::string file_name, STREAM_TYPE stream_type = FUSION_STREAM) = 0;
186
193 virtual int stopRecording(STREAM_TYPE stream_type = FUSION_STREAM) = 0;
194
201 virtual uint16_t getWidth(STREAM_TYPE type = DVS_STREAM) = 0;
202
209 virtual uint16_t getHeight(STREAM_TYPE type = DVS_STREAM) = 0;
210
217 const std::vector<ToolInfo> getAllToolsInfo();
218
227 const ToolInfo getToolInfo(ToolType type);
228
237 const std::shared_ptr<CameraTool> getTool(ToolType type);
238
245 virtual void setStatisticInfoCallback(DsStatisticInfoCallback cb) {};
246
247 virtual bool writeCalibrationFile(std::string file_path) = 0;
248
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:26
virtual int destroy()=0
virtual bool getNextBatch(Event2DVector &event_batch)=0
获取下一批事件 在使用getNextBatch函数之前,您需要使用 setBatchEventsNum 设置需要获取的事件数量, 或者使用 setBatchEventsTime 设置需要获取事件的时间间...
CameraDescription cameraDesc_
获取相机描述
定义 FusionCamera.hpp:258
FusionCamera(CameraDescription cameraDesc)
构造函数
定义 FusionCamera.hpp:37
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:56
virtual bool readCalibrationParam(CalibratorParameters &param)=0
virtual void setStatisticInfoCallback(DsStatisticInfoCallback cb)
设置回调函数以获取统计信息
定义 FusionCamera.hpp:245
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 uint32_t addSyncSignalCallback(DvsTriggerInCallback cb)=0
添加一个回调函数来处理输入触发信号
virtual bool writeCalibrationFile(std::string file_path)=0
virtual int init()=0
打开相机时,应该初始化
定义 TypeUtils.hpp:9
uint64_t TimeStamp
定义 TypeUtils.hpp:10
STREAM_TYPE
定义 DvsCameraUtils.hpp:39
定义 TypeUtils.hpp:34
用于描述相机信息的结构体
定义 DvsCameraUtils.hpp:68
工具的信息,包括类型、可以更改的参数名称和描述。
定义 ToolInfo.h:45