GrabBag/Device/VrEyeDevice/_Inc/VrEyeDevice.h

184 lines
4.3 KiB
C
Raw Normal View History

2025-07-23 01:35:14 +08:00
#ifndef CVREYEDEVICE_H
#define CVREYEDEVICE_H
#ifdef _WIN32
// Debug模式开关 - 修改此处开启/关闭debug功能
#define VR_EYE_DEBUG_MODE
#endif
2025-07-23 01:35:14 +08:00
#include "IVrEyeDevice.h"
#include "IVzDeviceCoreDataReader.h"
#include "VrEyeCommon.h"
#include "VZNL_Common.h"
#include "VZNL_DetectConfig.h"
#include "VZNL_DetectLaser.h"
#include "VZNL_SwingMotor.h"
#include "VZNL_Internal.h"
#include "VZNL_RGBConfig.h"
#include "VZNL_DetectLaser.h"
#ifdef VR_EYE_DEBUG_MODE
#include <thread>
#include <atomic>
#include <mutex>
#include <vector>
#endif
2025-07-23 01:35:14 +08:00
class CVrEyeDevice : public IVrEyeDevice
{
public:
CVrEyeDevice();
~CVrEyeDevice();
// 初始化设备
int InitDevice() override;
/**
*
*/
int SetStatusCallback(VzNL_OnNotifyStatusCBEx fNotify, void *param) override;
/**
* Open设备
*/
int OpenDevice(const char* sIP, bool bRGBD = false, bool bSwing = true, bool bFillLaser = true) override;
2025-07-23 01:35:14 +08:00
/**
*
* @return
*/
int GetVersion(SVzNLVersionInfo& sVersionInfo) override;
/**
*
* @return
*/
int GetDevInfo(SVzNLEyeDeviceInfoEx& sDeviceInfo) override;
/**
* Close设备
*/
int CloseDevice() override;
/**
*
* @return 0
*/
int StartDetect(VzNL_AutoOutputLaserLineExCB fCallFunc, EVzResultDataType eDataType, void *param) override;
/**
*
* @return
*/
bool IsDetectIng() override;
/**
*
* @return 0
*/
int StopDetect() override;
/**
* ROI设置
* @param leftROI
* @param rightROI
* @return
*/
int SetDetectROI(SVzNLRect& leftROI, SVzNLRect& rightROI) override;
int GetDetectROI(SVzNLRect& leftROI, SVzNLRect& rightROI) override;
/**
* &
* @return
*/
int SetEyeExpose(unsigned int& exposeTime) override;
int GetEyeExpose(unsigned int& exposeTime) override;
/**
* &
* @param gain
* @return
*/
int SetEyeGain(unsigned int& gain) override;
int GetEyeGain(unsigned int& gain) override;
/**
* &
* @param frame
* @return
*/
int SetFrame(int& frame) override;
int GetFrame(int& frame) override;
/**
* RGBD
* @return
*/
bool IsSupport() override;
/**
* Sensor期望值
* @param value
* @return
*/
int SetRGBDExposeThres(float& value) override;
int GetRGBDExposeThres(float& value) override;
/**
*
* @param dHeight
* @return
*/
int SetFilterHeight(double& dHeight) override;
int GetFilterHeight(double& dHeight) override;
/**
*
* @return
*/
int GetSwingSpeed(float& fSpeed) override;
int SetSwingSpeed(float& fSpeed) override;
/**
*
* @param nMin
* @param nMax
* @return
*/
int SetSwingAngle(float& fMin, float& fMax) override;
int GetSwingAngle(float& fMin, float& fMax) override;
/**
*
* @param nMin
* @param nMax
* @return
*/
int SetWorkRange(double& dMin, double& dMax) override;
int GetWorkRange(double& dMin, double& dMax) override;
private:
VZNLHANDLE m_pHandle = nullptr;
SVzNLEyeDeviceInfoEx m_sEeyCBDeviceInfo;
#ifdef VR_EYE_DEBUG_MODE
// Debug模式相关成员
VzNL_AutoOutputLaserLineExCB m_debugCallback = nullptr;
void* m_debugCallbackParam = nullptr;
EVzResultDataType m_debugDataType;
std::atomic<bool> m_debugRunning{false};
std::thread m_debugThread;
std::mutex m_debugMutex;
VzNL_OnNotifyStatusCBEx m_debugStatusCallback = nullptr;
void* m_debugStatusCallbackParam = nullptr;
void DebugThreadFunc();
#endif
2025-07-23 01:35:14 +08:00
};
#endif // CVREYEDEVICE_H