DvsenseDriver  1.1.4
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
247 const std::shared_ptr<CameraTool> getTool(std::string tool_name);
248
255 virtual void setStatisticInfoCallback(DsStatisticInfoCallback cb) {};
256
257 virtual bool writeCalibrationFile(std::string file_path) = 0;
258
260
261 virtual bool getFirmwareVersion(std::string &version) = 0;
262
271 bool exportCameraConfigParams(std::string json_file_path);
272
281 bool loadCameraConfigParams(std::string json_file_path);
282
283 protected:
291
298 virtual int init() = 0;
299
300 // tools
301 std::map<ToolType, std::shared_ptr<CameraTool>> tools_;
302 };
303
304} // namespace dvsense
305
306#endif // FUSION_CAMERA_HPP
相机管理器类
定义 DvsCameraManager.hpp:36
DVS相机的接口类
定义 FusionCamera.hpp:26
virtual int destroy()=0
virtual bool getNextBatch(Event2DVector &event_batch)=0
获取下一批事件 在使用getNextBatch函数之前,您需要使用 setBatchEventsNum 设置需要获取的事件数量, 或者使用 setBatchEventsTime 设置需要获取事件的时间间...
CameraDescription cameraDesc_
获取相机描述
定义 FusionCamera.hpp:290
bool loadCameraConfigParams(std::string json_file_path)
从JSON文件加载相机配置参数
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 getFirmwareVersion(std::string &version)=0
virtual bool removeEventsStreamHandleCallback(uint32_t callback_id)=0
通过id移除一个回调函数
virtual const bool isConnected()=0
检查相机是否连接
bool exportCameraConfigParams(std::string json_file_path)
将相机配置参数导出到JSON文件
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
启动相机
virtual bool readCalibrationParam(CalibratorParameters &param)=0
virtual void setStatisticInfoCallback(DsStatisticInfoCallback cb)
设置回调函数以获取统计信息
定义 FusionCamera.hpp:255
virtual bool removeSyncSignalCallback(uint32_t callback_id)=0
通过id移除一个回调函数
std::map< ToolType, std::shared_ptr< CameraTool > > tools_
定义 FusionCamera.hpp:301
virtual uint32_t addEventsStreamHandleCallback(EventsStreamHandleCallback cb)=0
添加一个回调函数来处理事件
virtual void setBatchEventsTime(TimeStamp n)=0
设置获取事件的时间间隔
const CameraDescription getDescription()
获取相机描述
定义 FusionCamera.hpp:56
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
停止相机
const std::shared_ptr< CameraTool > getTool(std::string tool_name)
通过工具名称获取工具
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