GrabBag/SDK/VzNLSDK/Inc/VZNL_DetectConfig.h

378 lines
14 KiB
C
Raw Normal View History

2025-07-23 01:35:14 +08:00
/*
* Header: VZNL_DetectConfig.h
* Description:
*
* Author: Mjw
* Date: 2018/08/28
*/
#ifndef __VIZUM_DETECTED_CONFIG_HEADER__
#define __VIZUM_DETECTED_CONFIG_HEADER__
#include "VZNL_Export.h"
#include "VZNL_Types.h"
/**
* @brief ROI[//]
* @param [in] hDevice
* @param [in] pLeftROI ROI
* @param [in] pRightROI ROI
* @param [in] bKeepTop
* @return ROI成功返回0否则为错误码
*/
VZNLAPI int VzNL_FormatDetectROI(VZNLHANDLE hDevice, SVzNLROIRect* pLeftROI, SVzNLROIRect* pRightROI, VzBool bKeepTop);
/**
* @brief [//]
* @param [in] hDevice
* @param [in] pLeftROIArea ROI区域
* @param [in] pRightROI ROI区域
* @return
*/
VZNLAPI int VzNL_ConfigDetectROI(VZNLHANDLE hDevice, const SVzNLROIRect* pLeftROIArea, const SVzNLROIRect* pRightROI);
VZNLAPI int VzNL_GetConfigDetectROI(VZNLHANDLE hDevice, SVzNLROIRect* pLeftROI, SVzNLROIRect* pRightROI);
/**
* @brief (ROI)[]
* @param [in] hDevice
* @param [in/out] pLeftROI ROI区域
* @param [in/out] pRightROI ROI区域
* @return
*/
VZNLAPI int VzNL_ConfigDetectROIWithFormat(VZNLHANDLE hDevice, SVzNLROIRect* pLeftROI, SVzNLROIRect* pRightROI);
/**
* @brief ROI的位置[/]
* @param [in] hDevice
* @param [in] dObjectDistance
* @param [in] dObjectMaxHeight
* @return
* @note:
*/
VZNLAPI int VzNL_AutoConfigDetectROI(VZNLHANDLE hDevice, double dObjectDistance, double dObjectMaxHeight, unsigned int* pnTop, unsigned int* pnBottom);
VZNLAPI int VzNL_CalcWorkRangeFromROI(VZNLHANDLE hDevice, double* pdNearDistance, double* pdFarDistance);
/**
* @brief /[/]
* @param [in] hDevice
* @param [in] eExposeMode [keVzNLExposeMode_Fix= / keVzNLExposeMode_Auto=]
* @param [in] nExposeTime [0~65535]
* @return
* @note: /
*/
VZNLAPI int VzNL_ConfigEyeExpose(VZNLHANDLE hDevice, EVzNLExposeMode eExposeMode, unsigned int nExposeTime);
VZNLAPI int VzNL_GetConfigEyeExpose(VZNLHANDLE hDevice, EVzNLExposeMode* peExposeMode, unsigned int* pnExposeTime);
/**
* @brief /[/]
* @param [in] hDevice
* @param [in] eSensorType [keEyeSensorType_Left= / keEyeSensorType_Right=]
* @param [in] nCameraGain [0~255]
* @return
* @note:
*/
VZNLAPI int VzNL_SetCameraGain(VZNLHANDLE hDevice, EVzEyeSensorType eSensorType, unsigned short nCameraGain);
VZNLAPI int VzNL_GetCameraGain(VZNLHANDLE hDevice, EVzEyeSensorType eSensorType, unsigned short* pnCameraGain);
/**
* @brief [][//]
* @param [in] hDevice
* @param [in] bEnable [0~2000]
* @return
*/
VZNLAPI int VzNL_SetFrameRate(VZNLHANDLE hDevice, int nFPS);
VZNLAPI int VzNL_GetFrameRate(VZNLHANDLE hDevice, int* pnFPS);
/**
* @brief
* @param [in] hDevice
* @param [in] pnErrorCode
* @return
* @note
*/
VZNLAPI int VzNL_QueryRunningFPS(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief Trigger模式[]
* @param [in] hDevice
* @param [in] eTriggerMode Trigger模式[//沿/沿]Master模式为
* @return
*/
VZNLAPI int VzNL_SetTriggerMode(VZNLHANDLE hDevice, EVzEyeTriggerMode eTriggerMode);
VZNLAPI EVzEyeTriggerMode VzNL_GetTriggerMode(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief []
* @param [in] hDevice
* @param [in] bNormal VzTrue为默认极性/VzFalse反向
* @return
*/
VZNLAPI int VzNL_SetTriggerPolar(VZNLHANDLE hDevice, VzBool bNormal);
VZNLAPI VzBool VzNL_GetTriggerPolar(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief []
* @param [in] hDevice
* @param [in] nDivCoe
* @return
*/
VZNLAPI int VzNL_SetTriggerDivCoe(VZNLHANDLE hDevice, unsigned int nDivCoe);
VZNLAPI unsigned int VzNL_GetTriggerDivCoe(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief []
* @detail keEyeTriggerMode_ManualTrigger触发模式下
* :VzNL_SetTriggerMode(hDevice, keEyeTriggerMode_ManualTrigger);
* @param [in] hDevice
* @param [in] nDivCoe
* @return
*/
VZNLAPI int VzNL_GenerateTriggerSignal(VZNLHANDLE hDevice);
/**
* @brief 使[]
* @param [in] hDevice
* @param [in] bIgnore VzTrue忽略) VzFalse (使)
* @return
*/
VZNLAPI int VzNL_IgnoreTriggerExtSignal(VZNLHANDLE hDevice, VzBool bIgnore);
VZNLAPI VzBool VzNL_IsIgnoreTriggerExtSignal(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief 使[]
* @param [in] hDevice
* @param [in] bHwExtEnable VzTrue为使用硬信号 VzFalse为使用软信号
* @return
*/
VZNLAPI int VzNL_EnableTriggerHwExtEn(VZNLHANDLE hDevice, VzBool bHwExtEnable);
VZNLAPI VzBool VzNL_IsEnableTriggerHwExtEn(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief 使[]
* @param [in] hDevice
* @param [in] bHighLevel
* @return
*/
VZNLAPI int VzNL_GenerateTriggerSoftExtEn(VZNLHANDLE hDevice, VzBool bHighLevel);
/**
* @brief
* @param hDevice [in] Handle
* @param eTriggerOutMode [in]
* keStrobeTriggerOutMode_None
* keStrobeTriggerOutMode_CameraLink keEyeTriggerMode_Master时,)
* keStrobeTriggerOutMode_UserControl VzNL_GenerateTriggerOutSignal生成一个控制信号
* @return
*/
VZNLAPI int VzNL_SetStrobeTriggerOutMode(VZNLHANDLE hDevice, EVzStrobeTriggerOutMode eTriggerOutMode);
VZNLAPI EVzStrobeTriggerOutMode VzNL_GetStrobeTriggerOutMode(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief
* @param hDevice [in] Handle
* @param bTriggerOn [in] VzTrue时为高电平VzFalse时为低电平信号
* @return
*/
VZNLAPI int VzNL_GenerateTriggerOutSignal(VZNLHANDLE hDevice, VzBool bTriggerOn);
VZNLAPI VzBool VzNL_IsTriggerOutOnSignal(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief []
* @param [in] hDevice
* @param [in] bEnable /
* @return
*/
VZNLAPI int VzNL_EnableLaserAccelerator(VZNLHANDLE hDevice, VzBool bEnable);
/**
* @brief [/]
* @param [in] hDevice
* @param [in] bEnable /
* @return
*/
VZNLAPI int VzNL_EnableDenoiseMode(VZNLHANDLE hDevice, VzBool bEnable);
VZNLAPI VzBool VzNL_IsEnableDenoiseMode(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief []
* @param [in] hDevice
* @param [in] nQualityLevel
* @return
*/
VZNLAPI int VzNL_ConfigImageQuality(VZNLHANDLE hDevice, EVzNLImageCompress eQualityLevel);
/**
* @brief ROI[]
* @param [in] hDevice
* @param [in] bEnableDynamicROI / ROI
* @return
*/
VZNLAPI int VzNL_ConfigDynamicROI(VZNLHANDLE hDevice, VzBool bEnableDynamicROI);
VZNLAPI VzBool VzNL_IsConfigDynamicROI(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief []
* @param [in] hDevice
* @param [in] shExposureValue [0~255]
* @return
*/
VZNLAPI int VzNL_ConfigExposureValue(VZNLHANDLE hDevice, unsigned short shExposureValue);
/**
* @brief ,[]
* @param [in] hDevice
* @param [in] dFixGain
* @return
*/
VZNLAPI int VzNL_DisableAWBInfo(VZNLHANDLE hDevice, double dFixGain);
/**
* @brief []
* @param [in] hDevice
* @param [in] psAwbInfo
* @return
*/
VZNLAPI int VzNL_EnableAWBInfo(VZNLHANDLE hDevice, const SVzNLAWBInfo* psAwbInfo);
/**
* @brief []
* @param [in] hDevice
* @param [in] bEnable /
* @return
*/
VZNLAPI int VzNL_EnableColorCortectMatrix(VZNLHANDLE hDevice, VzBool bEnable);
/**
* @brief []
* @param [in] hDevice
* @param [in] shCCMVal
* @return
*/
VZNLAPI int VzNL_ConfigColorCortectMatrix(VZNLHANDLE hDevice, unsigned short shCCMVal[3][3]);
/*
* @brief
* @param name="hDevice"[in]handle</param>
* @param name="eType"[in]</param>
* @param name="pnMinVal"[in]</param>
* @param name="pnMaxVal"[in]</param>
* @return
*/
VZNLAPI int VzNL_QueryParamRange(VZNLHANDLE hDevice, EVzDeviceParamType eType, unsigned int* pnMinVal, unsigned int* pnMaxVal);
/*
* @brief RGB设置
* @param name="hDevice"[in]handle</param>
* @param name="bEnable"[in]true表示同步设置RGBfalse表示不进行同步</param>
* @return
*/
VZNLAPI int VzNL_EnableSyncRGBD(VZNLHANDLE hDevice, VzBool bEnable);
VZNLAPI VzBool VzNL_IsEnableSyncRGBD(VZNLHANDLE hDevice, int* pnErrorCode);
/*
* @brief
* @param name="hDevice"[in]handle</param>
* @param name="bEnable"[in]true表示开启低功耗,false表示关闭低功耗</param>
* @return
*/
VZNLAPI int VzNL_EnableLowPowerMode(VZNLHANDLE hDevice, VzBool bEnable);
/*
* @brief
* @param name="hDevice"[in]handle</param>
* @param name="dDuration"[in]()</param>
* @return
*/
VZNLAPI int VzNL_EnterLowPowerDuration(VZNLHANDLE hDevice, double dDuration);
/*
* @brief
* @param name="hDevice"[in]handle</param>
* @param name="bHGauss"[in]</param>
* @param name="bVGauss"[in]</param>
* @return
*/
VZNLAPI int VzNL_EnableGauss(VZNLHANDLE hDevice, VzBool bHGauss, VzBool bVGauss);
VZNLAPI int VzNL_IsEnableGauss(VZNLHANDLE hDevice, VzBool* pbHGauss, VzBool* pbVGauss);
/*
* @brief
* @param name="hDevice"[in]handle</param>
* @param name="bHGauss"[in]</param>
* @param name="bVGauss"[in]</param>
* @return
*/
VZNLAPI int VzNL_EnableGauss(VZNLHANDLE hDevice, VzBool bHGauss, VzBool bVGauss);
VZNLAPI int VzNL_IsEnableGauss(VZNLHANDLE hDevice, VzBool* pbHGauss, VzBool* pbVGauss);
/*
* @brief /
* @param name="hDevice"[in]handle</param>
* @param name="eTriggerMode"[in]</param>
* @param name="nDelay"[in]ms</param>
* @return
*/
VZNLAPI int VzNL_SetTriggerDelay(VZNLHANDLE hDevice, EVzEyeTriggerMode eTriggerMode, unsigned int nDelay);
VZNLAPI int VzNL_GetTriggerDelay(VZNLHANDLE hDevice, EVzEyeTriggerMode eTriggerMode, unsigned int* pnDelay);
/*
* @brief /: 10ns)
* @param name="hDevice"[in]handle</param>
* @param name="nDebounce"[in]</param>
* @return
*/
VZNLAPI int VzNL_SetTriggerDebounce(VZNLHANDLE hDevice, unsigned int nDebounce);
VZNLAPI unsigned int VzNL_GetTriggerDebounce(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief ROI图像
* @param hDevice [in] Handle
* @param bEnable [in] VzTrue启用/VzFalse禁用
* @return 0
*/
VZNLAPI int VzNL_EnableCalibROI(VZNLHANDLE hDevice, VzBool bEnable);
VZNLAPI VzBool VzNL_IsEnableCalibROI(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief
* @param hDevice [in] Handle
* @param bOnCamera [in] VzTrue在相机上/VzFalse不在相机上
* @return 0
*/
VZNLAPI int VzNL_LaserEmitterOnCamera(VZNLHANDLE hDevice, VzBool bOnCamera);
VZNLAPI VzBool VzNL_HasLaserEmitterOnCamera(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief
* @param hDevice [in] Handle
* @param pnErrorCode [out]
* @return VzTrue有触发信号/VzFalse无触发信号
*/
VZNLAPI VzBool VzNL_HasTriggerSignalToCamera(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief
* @param hDevice [in] Handle
* @param pnErrorCode [out]
* @return VzTrue有触发信号/VzFalse无触发信号
*/
VZNLAPI int VzNL_GetCameraTriggerEncoderData(VZNLHANDLE hDevice, SVzEncoderData* pEncoderData);
/**
* @brief 沿
* @param hDevice
* @param pnErrorCode NULL
* @return VzTrue VzFalse
*/
VZNLAPI VzBool VzNL_IsSupportHighFrequenceFallingEdge(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief
* @param hDevice
* @param pnErrorCode NULL
* @return VzTrue VzFalse
*/
VZNLAPI VzBool VzNL_IsSupportStaticCalibParam(VZNLHANDLE hDevice, int* pnErrorCode);
#endif //__VIZUM_DETECTED_CONFIG_HEADER__