代码拉取完成,页面将自动刷新
#pragma once
#include <string>
#include <functional>
#include "../Utility/JsonObject.h"
#include "../common_global.h"
using std::string;
typedef std::function<void(void*, uint64_t, uint64_t, void*)> ImageCapturedCallback;
enum COMMON_EXPORT CameraStatus
{
UnKnown = 0,
Opened = 1,
Grabing = 2,
Closed = 3
};
enum COMMON_EXPORT CameraProperty
{
Gain = 0, //增益
GainMin,
GainMax,
ExposureTime, //曝光
ExposureTimeMin,
ExposureTimeMax,
Width,
WidthMin,
WidthMax,
Height,
HeightMax,
HeightMin,
OffsetX,
OffsetXMin,
OffsetXMax,
OffsetY,
OffsetYMin,
OffsetYMax
};
enum COMMON_EXPORT CameraTriggerMode
{
On = 0,
Off = 1
};
struct COMMON_EXPORT CameraDeviceInfo :JsonObject
{
public:
string Id;
string Name;
string SerialNumber;
CameraDeviceInfo()
{
SetProperties();
}
CameraDeviceInfo(string id, string name, string serialNumber)
:CameraDeviceInfo::CameraDeviceInfo()
{
Id = id;
Name = name;
SerialNumber = serialNumber;
}
protected:
virtual void SetProperties()
{
SetProperty("Id", JsonType::String, &Id);
SetProperty("Name", JsonType::String, &Name);
SetProperty("SerialNumber", JsonType::String, &SerialNumber);
}
};
class COMMON_EXPORT CaptureEventHandler
{
public:
virtual void OnImageCaptured(void * data, uint64_t width, uint64_t height) = 0;
};
class COMMON_EXPORT CameraDevice
{
public:
CameraDevice(const string id, const string sn);
//CameraDevice(const CameraDevice& device) = delete;
virtual ~CameraDevice(void);
virtual string Id() { return id; }
virtual string SN() { return sn; }
virtual void OpenCamera() = 0;
virtual void CloseCamera() = 0;
virtual void StartGrab() = 0;
virtual void StopGrab() = 0;
virtual void GrabOneSnapshot() = 0;
virtual void SetExposure(double) = 0;
virtual double GetExposure() = 0;
virtual CameraTriggerMode GetTriggerMode() = 0;
virtual void SetTriggerMode(CameraTriggerMode triggerMode) = 0;
virtual string GetPropertyValue(CameraProperty property) = 0;
virtual void SetPropertyValue(CameraProperty property, string& value) = 0;
void RegisterImageCapturedCallback(ImageCapturedCallback callback, void * userParam)
{
imgCapturedCallback = callback;
imgCapturedCallbackUserParam = userParam;
};
void UnRegisterImageCapturedCallback()
{
imgCapturedCallback = NULL;
imgCapturedCallbackUserParam = NULL;
};
CameraStatus GetStatus() { return status; }
protected:
CameraStatus status;
void * imgCapturedCallbackUserParam;
ImageCapturedCallback imgCapturedCallback;
private:
string id;
string sn;//Serial Number;
};
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。