GrabBag/SDK/Device/VzNLSDK/_Inc/VZNL_Internal.h

1899 lines
62 KiB
C
Raw Normal View History

2026-03-17 22:27:58 +08:00
#ifndef __VIZUM_INTERNAL_HEADER__
#define __VIZUM_INTERNAL_HEADER__
/// @brief
/// <20><>˾<EFBFBD>ڲ<EFBFBD>ʹ<EFBFBD>õĺ<C3B5><C4BA><EFBFBD><EFBFBD><EFBFBD>
#include "VZNL_Types.h"
#include "VZNL_Export.h"
/// @breif
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
/// <param name = "hDevice">[in]<5D><EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
/// <param name = "nThres">[in]<5D><><EFBFBD><EFBFBD>ֵ</param>
/// @return <20><><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD>ʾ<EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܵ<EFBFBD>
VZNLAPI int VzNL_ConfigThres(VZNLHANDLE hDevice, int nThres[2]);
VZNLAPI int VzNL_GetDetectThres(VZNLHANDLE hDevice, int* pnThres1, int* pnThres2);
/// @brief
/// <20><><EFBFBD><EFBFBD><EFBFBD>۾<EFBFBD>ROI
VZNLAPI int VzNL_EnableEyeROI(VZNLHANDLE hDevice, int bEnable);
VZNLAPI int VzNL_IsEnableEyeROI(VZNLHANDLE hDevice, int* pbEnable);
/// @brief
/// <20><><EFBFBD>ñ<EFBFBD>Եͼ
VZNLAPI int VzNL_EnableEdgeImage(VZNLHANDLE hDevice, int bEnable);
VZNLAPI int VzNL_IsEnableEdgeImage(VZNLHANDLE hDevice, int* pbEnable);
/// @brief
/// <20><><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD><D8B9><EFBFBD><EFBFBD><EFBFBD>
VZNLAPI int VzNL_SetExposeThres(VZNLHANDLE hDevice, EVzExposeThresType eType, unsigned int nThresValue);
VZNLAPI int VzNL_GetExposeThres(VZNLHANDLE hDevice, EVzExposeThresType* peType, unsigned int* pnThresValue);
VZNLAPI int VzNL_SetDeviceID(VZNLHANDLE hDevice, char ucDeviceID[16]);
/// @brief
/// <20><><EFBFBD><EFBFBD><EFBFBD>۾<EFBFBD><DBBE><EFBFBD>MAC<41><43>IP<49><50>Ŀ<EFBFBD><C4BF>IP
VZNLAPI int VzNL_ConfigEyeNetWork(VZNLHANDLE hDevice, const unsigned char byEyeIP[4], const unsigned char byEyeMAC[6], const unsigned char byEyeCBIP[4]);
VZNLAPI int VzNL_GetConfigEyeNetWork(VZNLHANDLE hDevice, unsigned char byEyeIP[4], unsigned char byEyeMAC[6], unsigned char byEyeCBIP[4]);
/// @brief
/// <20><><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
VZNLAPI int VzNL_ConfigThridNetWorkInfo(VZNLHANDLE hDevice, unsigned char byThridIP[4], unsigned int nThridPort, int bIsTransPic);
VZNLAPI int VzNL_GetConfigThridNetWorkInfo(VZNLHANDLE hDevice, unsigned char byThridIP[4], unsigned int* pnThridPort, int* pbIsTransPic);
/// @brief
/// <20><><EFBFBD><EFBFBD>Wifi
VZNLAPI int VzNL_ConfigWifiInfo(VZNLHANDLE hDevice, const char szBSSID[32], const char szPassWd[32], const unsigned char szMAC[6], const char szCipher[32]);
VZNLAPI int VzNL_GetConfigWifiInfo(VZNLHANDLE hDevice, char szBSSID[32], char szPassWd[32], unsigned char szMAC[6], char szCipher[32]);
/// @brief
/// Rename Device Name
VZNLAPI int VzNL_RenameDeviceName(VZNLHANDLE hDevice, char szDeviceName[32]);
/// @brief
/// Reset Device
VZNLAPI int VzNL_ResetDevice(VZNLHANDLE hDevice);
/// @brief
/// Query Device
VZNLAPI void* VzNL_QueryHandle(VZNLHANDLE hDevice);
/// @brief
/// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD>ȡ<EFBFBD><C8A1>(<28><>Ҫ<EFBFBD><D2AA><EFBFBD>ڸ<EFBFBD>3399<39><39><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E3B7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
VZNLAPI int VzNL_QueryDeviceData(VZNLHANDLE hDevice, void** ppUnknown);
/// @brief
/// <20><><EFBFBD><EFBFBD><EFBFBD>۾<EFBFBD>Gap
VZNLAPI int VzNL_SetDeviceGap(VZNLHANDLE hDevice, unsigned short nGap);
/// @brief
/// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>Trigger<65>Ĵ<EFBFBD><C4B4><EFBFBD>
VZNLAPI int VzNL_SetDeviceTriggerN(VZNLHANDLE hDevice, int nMin, int nMax);
/// @brief
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E3B7A8><EFBFBD><EFBFBD>
VZNLAPI int VzNL_QueryAIObject(VZNLHANDLE hDevice, const char* lpszDll, void** pAIInterface);
VZNLAPI int VzNL_QueryAIObjectEx(VZNLHANDLE hDevice, const char* lpszDll, void** pAIInterface, char szVersion[64]);
/// @brief
/// <20>޸<EFBFBD><DEB8><EFBFBD><E3B7A8><EFBFBD><EFBFBD>
VZNLAPI void* VzNL_QueryAlgoCore(VZNLHANDLE hDevice, int nDetectType);
/// @brief
/// <20><>ȡ<EFBFBD>ӿ<EFBFBD>
VZNLAPI int VzNL_QueryInterface(unsigned int nUnknownInterface, void** ppUnknownInterface);
/// @brief 3399<39><39><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>
/// @{
/// @brief
/// <20><><EFBFBD><EFBFBD>3399<39>
VZNLAPI int VzNL_ResetEyeCBDevice(SVzNLEyeCBDeviceInfoEx* psEyeCBDeviceInfo);
/// @brief
/// <20><><EFBFBD><EFBFBD>3399<39>豸Debug<75><67>
VZNLAPI int VzNL_SetEyeCBDebugCode(VZNLHANDLE hDevice, double nDebugCode);
/// @brief
/// <20><><EFBFBD><EFBFBD>3399<39>豸LogType
VZNLAPI int VzNL_SetEyeCBLogType(VZNLHANDLE hDevice, unsigned int nLogType);
/// @brief
/// <20><><EFBFBD>øֽ<C3B8><D6BD><EFBFBD><EFBFBD><EFBFBD>ģʽ
VZNLAPI int VzNL_SetCounterDetectMode(VZNLHANDLE hDevice, EVzEyeCBDetectMode eDetectMode);
/// @}
/// @name <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// @{
/// @brief
/// <20><><EFBFBD>òɼ<C3B2>ģʽ
VZNLAPI int VzNL_SetLocalLaserMode(VZNLHANDLE hDevice, EVzLaserCaptureMode eCaptureMode);
/// @brief
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD><D8BC><EFBFBD>
VZNLAPI int VzNL_EnableLocalDetect(VZNLHANDLE hDevice, VzBool bEnable);
/// @brief
/// <20><><EFBFBD>û<EFBFBD><C3BB><EFBFBD>֡<EFBFBD><D6A1>
VZNLAPI int VzNL_SetCacheSize(VZNLHANDLE hDevice, unsigned int nCacheSize);
/// @}
/// @brief
/// <20><><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VZNLAPI int VzNL_WriteCustomData(VZNLHANDLE hDevice, unsigned char* pCustomData, unsigned int nDataLength);
VZNLAPI int VzNL_ReadCustomData(VZNLHANDLE hDevice, unsigned char* pCustomData, unsigned int* pnDataLength);
/// @brief
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD><C7BF><EFBFBD>⣨3399֧<39>֣<EFBFBD>
/// <pararm name = "hDevice">[in]<5D>豸</param>
/// <pararm name = "bEnable">[in]<5D><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD></param>
/// @return <20><><EFBFBD><EFBFBD><30><CEAA>ȷ<EFBFBD><C8B7>ʧ<EFBFBD>ܷ<EFBFBD><DCB7>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD>
VZNLAPI int VzNL_EnableEnhancedDetection(VZNLHANDLE hDevice, VzBool bEnable);
VZNLAPI VzBool VzNL_IsEnableEnhancedDetection(VZNLHANDLE hDevice, int* pnErrorCode);
/// @brief
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߼<EFBFBD><DFBC>⣨3399֧<39>֣<EFBFBD>
/// <pararm name = "hDevice">[in]<5D>豸</param>
/// <pararm name = "bEnable">[in]<5D><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD></param>
/// @return <20><><EFBFBD><EFBFBD><30><CEAA>ȷ<EFBFBD><C8B7>ʧ<EFBFBD>ܷ<EFBFBD><DCB7>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD>/200.3
VZNLAPI int VzNL_EnableDetectLowLevelLaser(VZNLHANDLE hDevice, VzBool bEnable);
VZNLAPI VzBool VzNL_IsEnableDetectLowLevelLaser(VZNLHANDLE hDevice, int* pnErrorCode);
/// @brief
/// ֹͣ<CDA3><D6B9>ͼʱ<CDBC>Զ<EFBFBD><D4B6>л<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>ݲɼ<DDB2>״̬
/// <pararm name = "hDevice">[in]<5D>豸</param>
/// <pararm name = "bPicOrDataMode">[in]TrueΪͼ<CEAA><CDBC>ģʽ/False<73><65><EFBFBD><EFBFBD>ģʽ</param>
/// @return <20><><EFBFBD><EFBFBD><30><CEAA>ȷ<EFBFBD><C8B7>ʧ<EFBFBD>ܷ<EFBFBD><DCB7>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD>
VZNLAPI int VzNL_EnableAutoSwitchMode(VZNLHANDLE hDevice, VzBool bEnable, EVzNLEyeDataWorkMode eStatus);
/// @brief
/// ֹͣ<CDA3><D6B9>ͼʱ<CDBC>Զ<EFBFBD><D4B6>л<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>ݲɼ<DDB2>״̬
/// <pararm name = "hDevice">[in]<5D>豸</param>
/// <pararm name = "bPicOrDataMode">[in]TrueΪͼ<CEAA><CDBC>ģʽ/False<73><65><EFBFBD><EFBFBD>ģʽ</param>
/// @return <20><><EFBFBD><EFBFBD><30><CEAA>ȷ<EFBFBD><C8B7>ʧ<EFBFBD>ܷ<EFBFBD><DCB7>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD>
VZNLAPI int VzNL_ResetRobotCalibParam(VZNLHANDLE hDevice);
VZNLAPI int VzNL_SetRobotCalibParam(VZNLHANDLE hDevice, double dMatrix[16]);
VZNLAPI int VzNL_GetRobotCalibParam(VZNLHANDLE hDevice, double dMatrix[16]);
/// @name Բ<>μ<EFBFBD><CEBC><EFBFBD>
/// @brief
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VZNLAPI int VzNL_SetCircleMaxRDeviation(VZNLHANDLE hDevice, int nMaxReviation);
/// @brief
/// <20><>ȡ<EFBFBD>۾<EFBFBD>Handle
VZNLAPI void* VzNL_QueryEyeHandle(VZNLHANDLE hDevice);
/// @brief
/// д3399<39>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP
VZNLAPI int VzNL_ConfigEyeCBNetWorkAdapterIP(VZNLHANDLE hDevice, int nAdapter, unsigned char byIP[4]);
VZNLAPI int VzNL_GetEyeCBNetWorkAdapterIP(VZNLHANDLE hDevice, int nAdapter, unsigned char byIP[4]);
/// @brief
/// <20><><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VZNLAPI int VzNL_SetCustomCommand(VZNLHANDLE hDevice, unsigned short shAddress, unsigned short shCommand, unsigned int nSetValue);
VZNLAPI int VzNL_GetCustomCommand(VZNLHANDLE hDevice, unsigned short shAddress, unsigned short shCommand, unsigned int* pnReadData);
/// @brief
/// <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VZNLAPI int VzNL_EnableHeartBeat(VZNLHANDLE hDevice, VzBool bStreamOrCommand, VzBool bEnable, unsigned int nTimeOut, unsigned int nCmdInterval);
/// @brief
/// <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD>SDKö<4B><C3B6>
VZNLAPI int VzNL_EnableSDKEveryNetSearch(VzBool bEnable);
/// @brief
/// <20><>ȡ3399<39><39><EFBFBD>õ<EFBFBD>֡<EFBFBD><D6A1>
VZNLAPI int VzNL_Get3399FrameRate(VZNLHANDLE hDevice, unsigned int* pnFrameRate);
/// @brief
/// <20><><EFBFBD><EFBFBD>ú<EFBFBD><C3BA>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VZNLAPI int VzNL_SetGangueTargetCount(VZNLHANDLE hDevice, unsigned int nTargetCount);
/// @brief
/// <20><><EFBFBD><EFBFBD>SPIָ<49><D6B8>
VZNLAPI int VzNL_SetSPICustomData(VZNLHANDLE hDevice, unsigned char* pData, unsigned int nLength);
/// @brief
/// <20><><EFBFBD><EFBFBD>Trigger״̬<D7B4><CCAC><EFBFBD><EFBFBD>
VZNLAPI int VzNL_EnableCheckTriggerStatus(VZNLHANDLE hDevice, VzBool bEnable);
/// @brief
/// <20><><EFBFBD><EFBFBD>Trigger״̬<D7B4><CCAC><EFBFBD><EFBFBD>
VZNLAPI int VzNL_EnableStreamListener(VZNLHANDLE hDevice, VzBool bEnable, unsigned int nTimeOut);
/// @brief
/// <20><><EFBFBD>ðڶ<C3B0><DAB6><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ö<EFBFBD>̬ROI
/// <param name = "hDeivce">[in]<5D><EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
/// <param name = "bEnableMotor">[in]<5D>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ðڶ<C3B0><DAB6><EFBFBD><EFBFBD><EFBFBD></param>
/// <param name = "bLinkDynamicROI">[in]<5D>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̬ROI</param>
VZNLAPI int VzNL_EnableSwingMotorEx(VZNLHANDLE hDevice, VzBool bEnableMotor, VzBool bLinkDynamicROI);
/// @brief
/// <20>л<EFBFBD>ͼ<EFBFBD><CDBC>/<2F><><EFBFBD><EFBFBD>״̬
/// <param name = "hDeivce">[in]<5D><EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
/// <param name = "eMode">[in]<5D><><EFBFBD><EFBFBD><><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
/// @return 0Ϊ<30>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>0Ϊʧ<CEAA><CAA7>
VZNLAPI int VzNL_SwitchLaserEyeImageDataMode(VZNLHANDLE hDevice, EVzNLEyeDataWorkMode eMode);
VZNLAPI EVzNLEyeDataWorkMode VzNL_GetLaserEyeImageDataMode(VZNLHANDLE hDevice, int* pnErrorCode);
/// @brief <20>Ƿ<EFBFBD><C7B7>ı<C4B1>μ<EFBFBD><CEBC><EFBFBD>ʱ<EFBFBD><CAB1>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
/// <param name = "hDeivce">[in]<5D><EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
/// <param name = "bEnable">[in]VzTrue<75><65><EFBFBD>øı<C3B8></param>
VZNLAPI void VzNL_EnableLaserEyeSwitchModeWhenDetect(VZNLHANDLE hDevice, VzBool bEnable);
VZNLAPI VzBool VzNL_IsEnableLaserEyeSwitchModeWhenDetect(VZNLHANDLE hDevice, int* pnErrorCode);
/// @brief <20><EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VZNLAPI void VzNL_SaveLaserResult(VZNLHANDLE hDevice, const char* lpszFIle);
/// @brief <20><>ȡ<EFBFBD><C8A1>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EAB6A8><EFBFBD><EFBFBD>
VZNLAPI int VzNL_ReadColorCalibInfo(VZNLHANDLE hDevice, unsigned char* byData, unsigned int nDataLength);
/// @brief ע<><D7A2>Dump<6D>ص<EFBFBD>
VZNLAPI void VzNL_RegisterDumpCB(VzNL_CrashCallBack pFunCB);
/// @brief <20><><EFBFBD>ڰڶ<DAB0><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>Զ<EFBFBD><D4B6>л<EFBFBD>ROI
VZNLAPI void VzNL_EnableAutoChangeSwingROI(VZNLHANDLE hDevice, VzBool bEnable);
/// @brief д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// <param name = "hDevice">[in]<5D><EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
/// <param name = "nDevIndex">[in]<5D>豸Index,<2C><><EFBFBD>豸0, <20><><EFBFBD>豸1~xxx</param>
/// <param name = "dConvertMatrix">[in]ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
/// <param name = "dYRange">[in]Y<><59><EFBFBD>˷<EFBFBD>Χ<><C4AC>-9999999~999999</param>
/// <param name = "nOrderIdx">[in]<5D><><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
VZNLAPI int VzNL_WriteMultiDevData(VZNLHANDLE hDevice, unsigned int nDevIndex, double dConvertMatrix[3][4], double dYRange[2]);
VZNLAPI int VzNL_ReadMultiDevData(VZNLHANDLE hDevice, unsigned int* pnDevIndex, double dConvertMatrix[3][4], double dYRange[2]);
/// @brief д<><D0B4>/<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չʾ)
/// <param name = "hDevice">[in]<5D><EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
/// <param name = "nOrderIdx">[in]<5D>豸˳<E8B1B8><CBB3><EFBFBD><EFBFBD></param>
VZNLAPI int VzNL_WriteMultiDevOrder(VZNLHANDLE hDevice, int nOrderIdx);
VZNLAPI int VzNL_ReadMultiDevOrder(VZNLHANDLE hDevice, int* pnOrderIdx);
/// @brief
/// DistVarth
VZNLAPI int VzNL_SetDistVarth(VZNLHANDLE hDevice, unsigned int nDistVarth);
VZNLAPI unsigned int VzNL_GetDistVarth(VZNLHANDLE hDevice, int* pnErrorCode);
/// @brief
/// <20><><EFBFBD><EFBFBD>CalibBetterRgnPtNumTh
VZNLAPI int VzNL_SetCalibBetterRgnPtNumTh(VZNLHANDLE hDevice, unsigned int nRgnPtNumTh);
VZNLAPI unsigned int VzNL_GetCalibBetterRgnPtNumTh(VZNLHANDLE hDevice, int* pnErrorCode);
/// @brief
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߿<EFBFBD>
VZNLAPI int VzNL_SetMaxLineWidth(VZNLHANDLE hDevice, unsigned int nLineWidth);
VZNLAPI unsigned int VzNL_GetMaxLineWidth(VZNLHANDLE hDevice, int* pnErrorCode);
/// @brief
/// <20><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>ͼ
VZNLAPI int VzNL_SetTestPatten(VZNLHANDLE hDevice, unsigned int nTestPatten);
/// @brief <20><><EFBFBD>ü<EFBFBD><C3BC><EFBFBD>Y<EFBFBD><59><EFBFBD><EFBFBD>ֵ
VZNLAPI int VzNL_SetLaserFilterExceptYRange(VZNLHANDLE hDevice, double dYMin, double dYMax);
/// @brief <20><><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
VZNLAPI int VzNL_Read3DRef(VZNLHANDLE hDevice, SVzNL3DPoint* ps3DPoint);
VZNLAPI int VzNL_Write3DRef(VZNLHANDLE hDevice, SVzNL3DPoint* ps3DPoint);
/*
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param hDevice [in] <EFBFBD><EFBFBD><EFBFBD>Ϣ
* @return <EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD>͡<EFBFBD>
*/
VZNLAPI EVzProjectType VzNL_GetProjectType(VZNLHANDLE hDevice);
/*
* @brief <EFBFBD>Ƿ<EFBFBD>ֻ<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param hDevice [in] <EFBFBD><EFBFBD><EFBFBD>Ϣ
*/
VZNLAPI VzBool VzNL_IsOnlyResult(VZNLHANDLE hDevice, int* pnErrorCode);
/*
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
* @param hDevice [in] <EFBFBD><EFBFBD><EFBFBD>Ϣ
* @param dInverseRT [in] <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(ԭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵΪ0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_QueryInverseRT(VZNLHANDLE hDevice, double dInverseR[4][4]);
/*
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>CircleMark<EFBFBD>ļ<EFBFBD>
* @param hDevice [in] <EFBFBD><EFBFBD><EFBFBD>Ϣ
* @param lpszFile [in] <EFBFBD><EFBFBD>ļ<EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵΪ0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_SaveCircleMarkFile(VZNLHANDLE hDevice, const char* lpszFile);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>(<EFBFBD>ǹ<EFBFBD><EFBFBD><EFBFBD>ר<EFBFBD><EFBFBD>)
* @param hDevice [in] <EFBFBD>Handle
* @param bEnable [in] VzTrue<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/VzFalse<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD>رճɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_SaveLaserFile(VZNLHANDLE hDevice, const char* lpszFile);
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<EFBFBD>ǹ<EFBFBD><EFBFBD><EFBFBD>ר<EFBFBD><EFBFBD>)
* @param hDevice [in] <EFBFBD>Handle
* @param bEnable [in] VzTrue<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/VzFalse<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD>رճɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_QueryLogisticsInverseRT(VZNLHANDLE hDevice, double dInverseMatrix[4][4]);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD>ý<EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD>ģʽ(<EFBFBD>ǹ<EFBFBD><EFBFBD><EFBFBD>ר<EFBFBD><EFBFBD>)
* @param hDevice [in] <EFBFBD>Handle
* @param bEnable [in] VzTrue<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/VzFalse<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD>رճɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_OnlyTransOriImage(VZNLHANDLE hDevice, VzBool bEnable);
/**
* @brief <EFBFBD><EFBFBD>ȡԭʼ<EFBFBD>ֱ<EFBFBD><EFBFBD><EFBFBD>
* @param hDevice [in] <EFBFBD>Handle
* @return <EFBFBD>رճɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_GetOriResolution(VZNLHANDLE hDevice, SVzVideoResolution* psVideoRes);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD>Sensorͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
* @param hDevice [in] <EFBFBD>Handle
* @param bIsGray [in] VzTrue<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>Ҷ<EFBFBD>Sensor<EFBFBD><EFBFBD> VzFalseΪ<EFBFBD><EFBFBD>ɫ
* @return <EFBFBD>رճɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_SetCenterSensorImageType(VZNLHANDLE hDevice, VzBool bIsGray);
VZNLAPI VzBool VzNL_GetCenterSensorImageType(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>Map
* @param hDevice [in] <EFBFBD>Handle
* @param pnErrorCode [out] <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return VzTrue<EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>Map
*/
VZNLAPI VzBool VzNL_IsDownloadMap(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD><EFBFBD>ȡSensor״̬
* @param hDevice [in] <EFBFBD>Handle
* @param bValidStatus [out] 0<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2<EFBFBD><EFBFBD><EFBFBD>м<EFBFBD>Sensor VzTrueΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> VzFalseΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD>رճɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_GetSensorStatus(VZNLHANDLE hDevice, VzBool bValidStatus[3]);
/**
* @brief д<EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param hDevice [in] <EFBFBD>Handle
*/
VZNLAPI int VzNL_WriteUserData(VZNLHANDLE hDevice, unsigned int nOffset, unsigned char* pData, unsigned int nDataLength);
VZNLAPI int VzNL_ReadUserData(VZNLHANDLE hDevice, unsigned int nOffset, unsigned char* pData, unsigned int nDataLength);
/**
* @brief LL
* @param hDevice [in] <EFBFBD>Handle
*/
VZNLAPI int VzNL_SetSmoothingLL(VZNLHANDLE hDevice, unsigned int nWinSize);
VZNLAPI unsigned int VzNL_GetSmoothingLL(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief LLG (<EFBFBD><EFBFBD>LLΪ1ʱ, LLG<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻΪ1)
* @param hDevice [in] <EFBFBD>Handle
*/
VZNLAPI int VzNL_SetSmoothingDigiGain(VZNLHANDLE hDevice, unsigned int nDigiGain);
VZNLAPI unsigned int VzNL_GetSmoothingDigiGain(VZNLHANDLE hDevice, int* pnErrorCode);
/// @brief <20><>PetaLinux<75><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
VZNLAPI int VzNL_SendDataToPeta(VZNLHANDLE hDevice, unsigned char* pData, unsigned int nDataLength);
/// @brief <20><><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PetaLinuxͨ<78><CDA8>
VZNLAPI int VzNL_ActivePetaLinux(VZNLHANDLE hDevice, VzBool bActive);
/// @brief <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VZNLAPI int VzNL_EnableOutputLaserLine(VZNLHANDLE hDevice, VzBool bActive);
VZNLAPI VzBool VzNL_IsEnableOutputLaserLine(VZNLHANDLE hDevice, int* pnErrorCode);
/// @brief <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD> ú<><C3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VZNLAPI int VzNL_EnableOutputCoalData(VZNLHANDLE hDevice, VzBool bEnable);
VZNLAPI VzBool VzNL_IsEnableOutputCoalData(VZNLHANDLE hDevice, int* pnErrorCode);
/// @brief
/// д<><D0B4>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>
VZNLAPI int VzNL_SendCoalSpecialCommand(VZNLHANDLE hDevice, unsigned int eCoalCommand, unsigned char* pData, unsigned int nDataLength);
VZNLAPI int VzNL_GetCoalSpecialCommand(VZNLHANDLE hDevice, unsigned int eCoalCommand, unsigned char* ppData, unsigned int nDataLength);
/// @brief
/// <20><EFBFBD><E9BFB4>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>״̬
VZNLAPI VzBool VzNL_QueryStreamStatus(VZNLHANDLE hDevice);
VZNLAPI EVzNLEyeDataWorkMode VzNL_QueryCurDataMode(VZNLHANDLE hDevice);
/// @brief
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>PS
VZNLAPI int VzNL_SendCustomDataToPS(VZNLHANDLE hDevice, unsigned char* pData, unsigned int nDataLength);
/// @brief
/// <20><><EFBFBD><EFBFBD>PSͨ<53><CDA8>
VZNLAPI int VzNL_ActivePSChannel(VZNLHANDLE hDevice, VzBool bEnable);
/// @brief
/// <20><><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD>Ƿ<EFBFBD><C7B7>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD>ưڶ<C6B0>ģ<EFBFBD><C4A3>λ<EFBFBD><CEBB>
VZNLAPI int VzNL_EnableAutoRotateSwingToStopAngle(VZNLHANDLE hDevice, VzBool bEnable);
VZNLAPI VzBool VzNL_IsEnableAutoRotateSwingToStopAngle(VZNLHANDLE hDevice, int* pnErrorCode);
/// @brief <20>Ƿ<EFBFBD>֧<EFBFBD><D6A7>Bin
VZNLAPI VzBool VzNL_IsSupportBin(VZNLHANDLE hDevice);
/// @brief <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD> Binģʽ
VZNLAPI VzBool VzNL_IsEnableBinMode(VZNLHANDLE hDevice, int* pnErrorCode);
/// @breif <20><><EFBFBD>õ<EFBFBD>ǰλ<C7B0><CEBB>Ϊ<EFBFBD><CEAA>λ
VZNLAPI int VzNL_SetSwingZeroPos(VZNLHANDLE hDevice);
/// @breif <20><><EFBFBD>õ<EFBFBD>ǰλ<C7B0><CEBB>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VZNLAPI int VzNL_SetSwingLeftLimit(VZNLHANDLE hDevice);
/// @breif <20><><EFBFBD>õ<EFBFBD>ǰλ<C7B0><CEBB>Ϊ<EFBFBD>Ҽ<EFBFBD><D2BC><EFBFBD>
VZNLAPI int VzNL_SetSwingRightLimit(VZNLHANDLE hDevice);
/// @brief <20><><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD>ģ<EFBFBD><C4A3>
VZNLAPI int VzNL_SetSpeedPI(VZNLHANDLE hDevice, unsigned char shSpeedP, unsigned char shSpeedI);
VZNLAPI int VzNL_GetSpeedPI(VZNLHANDLE hDevice, unsigned char* pshSpeedP, unsigned char* pshSpeedI);
/// @brief <20><><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD>ģ<EFBFBD><C4A3>
VZNLAPI int VzNL_SetCurrentPI(VZNLHANDLE hDevice, unsigned char shSpeedP, unsigned char shSpeedI);
VZNLAPI int VzNL_GetCurrentPI(VZNLHANDLE hDevice, unsigned char* pshSpeedP, unsigned char* pshSpeedI);
/// @brief <20>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>PI
VZNLAPI int VzNL_EnableSwingAdjustPI(VZNLHANDLE hDevice, VzBool bEnable);
/// @brief <20><>ȡ<EFBFBD>ڶ<EFBFBD>ģ<EFBFBD><C4A3>״̬
VZNLAPI int VzNL_QuerySwingStatus(VZNLHANDLE hDevice, int* pnErrorCode);
/// @brief <20><><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD>ģ<EFBFBD><C4A3>
VZNLAPI int VZNL_UpdateSwing(VZNLHANDLE hDevice, const char* lpszFile);
/// @brief <20><><EFBFBD>ðڶ<C3B0>ģ<EFBFBD><C4A3>
VZNLAPI int VZNL_ResetSwing(VZNLHANDLE hDevice);
/// @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VZNLAPI int VZNL_FindMotorZero(VZNLHANDLE hDevice);
/// @brief <20><><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD>
VZNLAPI int VZNL_MotorSelfCheck(VZNLHANDLE hDevice);
/// @brief <20><><EFBFBD><EFBFBD><EFBFBD>ӳٵ<D3B3>֡<EFBFBD><D6A1> frame
VZNLAPI int VzNL_SetRGBDPostFrameNum(VZNLHANDLE hDevice, unsigned int nPostFrameNum);
VZNLAPI unsigned int VzNL_GetRGBDPostFrameNum(VZNLHANDLE hDevice, int* pnErrorCode);
/// @brief <20><><EFBFBD><EFBFBD>΢<EFBFBD><CEA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>mm
VZNLAPI int VzNL_SetRGBDFineTune(VZNLHANDLE hDevice, float fFineTune);
VZNLAPI float VzNL_GetRGBDFineTune(VZNLHANDLE hDevice, int* pnErrorCode);
/// @brief <20><><EFBFBD><EFBFBD>˫Ŀ<CBAB>굥Ŀ<EAB5A5><C4BF><EFBFBD><EFBFBD>
VZNLAPI int VzNL_UseSingleCameraCalibParam(VZNLHANDLE hDevice, VzBool bUseCalibParam);
VZNLAPI VzBool VzNL_IsUseSingleCameraCalibParam(VZNLHANDLE hDevice, int* pnErrorCode);
VZNLAPI int VzNL_SetSingleCameraRefPlaneCalibParam(VZNLHANDLE hDevice, double dParam[5]);
VZNLAPI int VzNL_GetSingleCameraRefPlaneCalibParam(VZNLHANDLE hDevice, double dParam[5]);
/// @brief <20><><EFBFBD>õ<EFBFBD>Ŀ<EFBFBD><EFBFBD><EAB6A8><EFBFBD><EFBFBD>
VZNLAPI int VzNL_EnableCompute3DSingleEye(VZNLHANDLE hDevice, VzBool bEnable);
VZNLAPI VzBool VzNL_IsEnableCompute3DSingleEye(VZNLHANDLE hDevice, int* pnErrorCode);
VZNLAPI int VzNL_SetCompute3DSEParam(VZNLHANDLE hDevice, float fParam[4]);
VZNLAPI int VzNL_GetCompute3DSEParam(VZNLHANDLE hDevice, float fParam[4]);
/// @brief <20><>ȡDebug<75><67><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VZNLAPI unsigned int VzNL_QueryDeviceDebugDataTotleSize(VZNLHANDLE hDevice);
/// @brief <20><><EFBFBD><EFBFBD>Map<61><70><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD>Ϣ
/// <param name = "hDevice">[in]<5D><EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
/// <param name = "lpszSaveDir">[in]<5D>洢·<E6B4A2><C2B7></param>
/// <param name = "dUpdateTime">[in]<5D><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1></param>
/// <param name = "pDebugSaveProgress">[in]<5D><><EFBFBD>ݻص<DDBB></param>
VZNLAPI int VzNL_SaveDeviceDebugInfo(VZNLHANDLE hDevice, const char* lpszSaveDir, double dUpdateTime, void* pDebugSaveProgress);
/**
* @brief <EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD>Handle
* @param [in] bEnable <EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽͼ<EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>÷ֲ<EFBFBD><EFBFBD>VzTrue,<EFBFBD><EFBFBD><EFBFBD>򷵻<EFBFBD>VzFalse
*/
VZNLAPI int VzNL_EnableCModeImage(VZNLHANDLE hDevice, VzBool bEnable);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>RGBDƫ<EFBFBD>ƾ<EFBFBD><EFBFBD><EFBFBD>(mm)
* @param [in] hDevice <EFBFBD>Handle
* @param [in] fDistance ƫ<EFBFBD>ƾ<EFBFBD><EFBFBD><EFBFBD>(mm)
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_SetRGBOffsetDistance(VZNLHANDLE hDevice, float fDistance);
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>RGBDƫ<EFBFBD>ƾ<EFBFBD><EFBFBD><EFBFBD>(mm)
* @param [in] hDevice <EFBFBD>Handle
* @param [in] nErrorCode <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>RGBDƫ<EFBFBD>ƾ<EFBFBD><EFBFBD><EFBFBD>(mm)
*/
VZNLAPI float VzNL_GetRGBOffsetDistance(VZNLHANDLE hDevice, int* nErrorCode);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ
* @param [in] hDevice <EFBFBD>Handle
* @param [in] bEnable <EFBFBD><EFBFBD><EFBFBD><EFBFBD>VzTrue / <EFBFBD><EFBFBD><EFBFBD><EFBFBD>VzFalse
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_EnableSupportSS(VZNLHANDLE hDevice, VzBool bEnable);
/**
* @brief <EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ
* @param [in] hDevice <EFBFBD>Handle
* @param [in] pnErrorCode <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>÷ֲ<EFBFBD><EFBFBD>VzTrue,<EFBFBD><EFBFBD><EFBFBD>򷵻<EFBFBD>VzFalse
*/
VZNLAPI VzBool VzNL_IsEnableSupportSS(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><EFBFBD>߷<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ
* @param [in] hDevice <EFBFBD>Handle
* @param [in] bEnable <EFBFBD><EFBFBD><EFBFBD><EFBFBD>VzTrue / <EFBFBD><EFBFBD><EFBFBD><EFBFBD>VzFalse
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_EnableSupportSingleReflect(VZNLHANDLE hDevice, VzBool bEnable);
/**
* @brief <EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD>߷<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ
* @param [in] hDevice <EFBFBD>Handle
* @param [in] pnErrorCode <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>÷ֲ<EFBFBD><EFBFBD>VzTrue,<EFBFBD><EFBFBD><EFBFBD>򷵻<EFBFBD>VzFalse
*/
VZNLAPI VzBool VzNL_IsEnableSupportSingleReflect(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD>÷ֲ<EFBFBD><EFBFBD> (Ĭ<EFBFBD><EFBFBD>ΪVzTrue)
* @param [in] hDevice <EFBFBD>Handle
* @param [in] bEnable <EFBFBD><EFBFBD><EFBFBD><EFBFBD>VzTrue / <EFBFBD><EFBFBD><EFBFBD><EFBFBD>VzFalse
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_EnableMultiMatch(VZNLHANDLE hDevice, VzBool bEnable);
/**
* @brief <EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˷ֲ<EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD>Handle
* @param [in] pnErrorCode <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>÷ֲ<EFBFBD><EFBFBD>VzTrue,<EFBFBD><EFBFBD><EFBFBD>򷵻<EFBFBD>VzFalse
*/
VZNLAPI VzBool VzNL_IsEnableMultiMatch(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ø<EFBFBD><EFBFBD><EFBFBD>(<EFBFBD><EFBFBD>10<EFBFBD><EFBFBD>) <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD>֧<EFBFBD><EFBFBD><EFBFBD>ǹ<EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD>Handle
* @param [out]pnSupportUserProfileCount <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊnull, <EFBFBD><EFBFBD>ȡ֧<EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_QueryUserProfileCount(VZNLHANDLE hDevice, int* pnSupportUserProfileCount);
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD>С(512 K) <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD>֧<EFBFBD><EFBFBD><EFBFBD>ǹ<EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD>Handle
* @param [out]pnMaxLength <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊnull, <EFBFBD><EFBFBD>ȡ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_QueryUserProfileMaxLength(VZNLHANDLE hDevice, int* pnMaxLength);
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<EFBFBD><EFBFBD>10<EFBFBD><EFBFBD>) <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD>֧<EFBFBD><EFBFBD><EFBFBD>ǹ<EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD>Handle
* @param [in] nProfileIdx <EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] pData <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Buffer
* @param [in] nReadLength <EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_ReadUserProfile(VZNLHANDLE hDevice, unsigned int nProfileIdx, unsigned char* pData, unsigned int nReadLength);
VZNLAPI int VzNL_WriteUserProfile(VZNLHANDLE hDevice, unsigned int nProfileIdx, unsigned char* pData, unsigned int nWriteLength);
/**
* @brief д<EFBFBD><EFBFBD>/<EFBFBD><EFBFBD>ȡ<EFBFBD>û<EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD>б<EFBFBD> <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD>֧<EFBFBD><EFBFBD><EFBFBD>ǹ<EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD>Handle
* @param [in] pData <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Buffer
* @param [in] nReadLength <EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_WriteUseProfileHeadBlock(VZNLHANDLE hDevice, unsigned char* pData, unsigned int nWriteLength);
VZNLAPI int VzNL_ReadUseProfileHeadBlock(VZNLHANDLE hDevice, unsigned char* pData, unsigned int nReadLength);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD>ðڶ<EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD>ٶȲ<EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD>Handle
* @param [in] fSpeedFactor <EFBFBD>ٶȲ<EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_SetSwingSpeedFactor(VZNLHANDLE hDevice, float fSpeedFactor);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>SPIͨ<EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD>Handle
*/
VZNLAPI int VzNL_CheckSwingSPIComm(VZNLHANDLE hDevice);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD>ϲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD>֧<EFBFBD><EFBFBD><EFBFBD>ǹ<EFBFBD><EFBFBD><EFBFBD>
* @param hDevice <EFBFBD>Handle
*/
VZNLAPI int VzNL_SaveDefaultSetting(VZNLHANDLE hDevice);
/**
* @brief <EFBFBD><EFBFBD>д<EFBFBD>û<EFBFBD>Ĭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD>Handle
* @param [in] pData <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Buffer
* @param [in] nReadLength <EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_WriteDefaultData(VZNLHANDLE hDevice, unsigned char* pData, unsigned int nWriteLength);
VZNLAPI int VzNL_ReadDefaultData(VZNLHANDLE hDevice, unsigned char* pData, unsigned int nReadLength);
/**
* @brief <EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD>Handle
* @param [in] pData <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Buffer
* @param [in] nReadLength <EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_WriteRuntimeData(VZNLHANDLE hDevice, unsigned char* pData, unsigned int nWriteLength);
VZNLAPI int VzNL_ReadRuntimeData(VZNLHANDLE hDevice, unsigned char* pData, unsigned int nReadLength);
/**
* @brief <EFBFBD>л<EFBFBD>ʹ<EFBFBD>ܺʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_SwapTriggerSignal(VZNLHANDLE hDevice, VzBool bEnable);
VZNLAPI VzBool VzNL_IsSwapTriggerSignal(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD>Ƿ<EFBFBD>֧<EFBFBD><EFBFBD>˫<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI VzBool VzNL_IsSupportBiPhaseEncoder(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD>Ƿ<EFBFBD>֧<EFBFBD>ֹ<EFBFBD>ǿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI VzBool VzNL_IsSupportIntensityData(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD>л<EFBFBD>˫<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/En <EFBFBD>ź<EFBFBD>
*/
VZNLAPI int VzNL_SetEnInPointSignal(VZNLHANDLE hDevice, EVzEnLineInPoint bEnable);
VZNLAPI EVzEnLineInPoint VzNL_GetEnInPointSignal(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD>޸<EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>Ҷ<EFBFBD>Դ
*/
VZNLAPI int VzNL_SetGraySource(VZNLHANDLE hDevice, EVzGrayValueSource eSource);
VZNLAPI EVzGrayValueSource VzNL_GetGraySource(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
*/
VZNLAPI int VzNL_GetEncoderStatus(VZNLHANDLE hDevice, unsigned int nStatus[3]);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_ResetEncoder(VZNLHANDLE hDevice);
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
*/
VZNLAPI int VzNL_SetRGBCalibCamInfo(VZNLHANDLE hDevice, float fCamInfo[4]);
VZNLAPI int VzNL_GetRGBCalibCamInfo(VZNLHANDLE hDevice, float fCamInfo[4]);
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
*/
VZNLAPI int VzNL_SetRGBCalibRTMatrixData(VZNLHANDLE hDevice, float fRTMatrix[12]);
VZNLAPI int VzNL_GetRGBCalibRTMatrixData(VZNLHANDLE hDevice, float fRTMatrix[12]);
/// @brief д<><D0B4>RGB <20><EFBFBD><EAB6A8><EFBFBD><EFBFBD>
VZNLAPI int VzNL_SetRGBASyncParamData(VZNLHANDLE hDevice, float fBaseDx, float fMidDx[2], float fMaxDx[2], unsigned int nDivFrame);
VZNLAPI int VzNL_GetRGBASyncParamData(VZNLHANDLE hDevice, float* pfBaseDx, float fMidDx[2], float fMaxDx[2], unsigned int* pnDivFrame);
/// @brief <20><><EFBFBD><EFBFBD>RGB UV
VZNLAPI SVzNL2DPoint* VzNL_CalcRGBUV(VZNLHANDLE hDevice, SVzNL3DPointF* ptPoint, int nPointCount);
/// @brief <20>Ƿ<EFBFBD>Ϊ<EFBFBD>첽RGBD<42><44><EFBFBD><EFBFBD>
VZNLAPI VzBool VzNL_IsSupportAsyncRGB(VZNLHANDLE hDevice);
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD>ǹ<EFBFBD><EFBFBD><EFBFBD>/<EFBFBD>ǹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><EFBFBD>Ϣ
* @param [in] pEyeCBInfo
* @param [out] pDeviceInfoEx
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʾ<EFBFBD>ɹ<EFBFBD>
*/
VZNLAPI int VzNL_QueryDeviceDetailDesc(const SVzNLEyeCBInfo* pEyeCBInfo, SVzNLEyeDeviceInfoEx* pDeviceInfoEx);
// @name Mark <20><><EFBFBD><EFBFBD>
// @{
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD><EFBFBD><EFBFBD> Mark<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] bEnable <EFBFBD><EFBFBD><EFBFBD>ø<EFBFBD><EFBFBD>٣<EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>ȷ
* @retval 0 <EFBFBD><EFBFBD>ʾ<EFBFBD>ɹ<EFBFBD>
* @retval <EFBFBD><EFBFBD>0 <EFBFBD><EFBFBD>ʾʧ<EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>VzNL_GetErrorInfo<EFBFBD><EFBFBD>ȡ
*/
VZNLAPI int VzNL_EnableTraceMark(VZNLHANDLE hDevice, VzBool bEnable);
VZNLAPI int VzNL_IsEnableTraceMark(VZNLHANDLE hDevice, VzBool* pbEnable);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD>á<EFBFBD><EFBFBD><EFBFBD>ȡ <EFBFBD><EFBFBD><EFBFBD>ٷ<EFBFBD>Χ
* @param [in] dDiameter ֱ<EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>ȷ
* @retval 0 <EFBFBD><EFBFBD>ʾ<EFBFBD>ɹ<EFBFBD>
* @retval <EFBFBD><EFBFBD>0 <EFBFBD><EFBFBD>ʾʧ<EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>VzNL_GetErrorInfo<EFBFBD><EFBFBD>ȡ
*/
VZNLAPI int VzNL_SetMarkTraceDistance(VZNLHANDLE hDevice, float fDistance);
VZNLAPI int VzNL_GetMarkTraceDistance(VZNLHANDLE hDevice, float* pfDistance);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD>á<EFBFBD><EFBFBD><EFBFBD>ȡ <EFBFBD><EFBFBD><EFBFBD>ٷ<EFBFBD>Χ
* @param [in] dDiameter ֱ<EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>ȷ
* @retval 0 <EFBFBD><EFBFBD>ʾ<EFBFBD>ɹ<EFBFBD>
* @retval <EFBFBD><EFBFBD>0 <EFBFBD><EFBFBD>ʾʧ<EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>VzNL_GetErrorInfo<EFBFBD><EFBFBD>ȡ
*/
VZNLAPI int VzNL_ResetMarkSequenceID(VZNLHANDLE hDevice, unsigned int* pnSequenceID, unsigned int nCount);
VZNLAPI int VzNL_GetMarkSequenceID(VZNLHANDLE hDevice, unsigned int* pnSequenceID, unsigned int* pnCount);
// @}
VZNLAPI int VzNL_EnableOutputTearData(VZNLHANDLE hDevice, VzBool bEnable);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><EFBFBD><EFBFBD><EFBFBD>߲<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] nInterval <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>ȷ
* @retval 0 <EFBFBD><EFBFBD>ʾ<EFBFBD>ɹ<EFBFBD>
* @retval <EFBFBD><EFBFBD>0 <EFBFBD><EFBFBD>ʾʧ<EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>VzNL_GetErrorInfo<EFBFBD><EFBFBD>ȡ
*/
VZNLAPI int VzNL_SetOutputLaserInterval(VZNLHANDLE hDevice, unsigned int nInterval);
VZNLAPI int VzNL_GetOutputLaserInterval(VZNLHANDLE hDevice, unsigned int* pnInterval);
/**
* @brief <EFBFBD>Ƿ<EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] bEnable VzTrue<EFBFBD><EFBFBD>ʾֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>ȷ
* @retval 0 <EFBFBD><EFBFBD>ʾ<EFBFBD>ɹ<EFBFBD>
* @retval <EFBFBD><EFBFBD>0 <EFBFBD><EFBFBD>ʾʧ<EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>VzNL_GetErrorInfo<EFBFBD><EFBFBD>ȡ
*/
VZNLAPI int VzNL_EnableOnlyOutputTearResult(VZNLHANDLE hDevice, VzBool bEnable);
VZNLAPI VzBool VzNL_IsEnableOnlyOutputTearResult(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] ePresetProfile Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>ȷ
* @retval 0 <EFBFBD><EFBFBD>ʾ<EFBFBD>ɹ<EFBFBD>
* @retval <EFBFBD><EFBFBD>0 <EFBFBD><EFBFBD>ʾʧ<EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>VzNL_GetErrorInfo<EFBFBD><EFBFBD>ȡ
*/
VZNLAPI int VzNL_SetDetectObjectType(VZNLHANDLE hDevice, EVzLaserObjectDetectPresetProfile ePresetProfile);
VZNLAPI EVzLaserObjectDetectPresetProfile VzNL_GetDetectObjectType(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_DisableStreamData(VZNLHANDLE hDevice, VzBool bEnable);
VZNLAPI VzBool VzNL_IsDisableStreamData(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* szy
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>3D<EFBFBD><EFBFBD><EFBFBD>ݼ<EFBFBD><EFBFBD><EFBFBD>ģʽ
*/
VZNLAPI int VzNL_EnableTrans3DRGBImage(VZNLHANDLE hDevice, VzBool bEnable);
VZNLAPI VzBool VzNL_IsEnableTrans3DRGBImage(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>η<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD>С
*/
VZNLAPI int VzNL_SetEthSendDataLength(VZNLHANDLE hDevice, unsigned int nDataLength);
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD>ڶ<EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>Debug<EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD>ֱ<EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_GetSwingInterruptInfo(VZNLHANDLE hDevice, unsigned int nTime[3]);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD>ðڶ<EFBFBD>ģ<EFBFBD><EFBFBD>Debugģʽ
*/
VZNLAPI int VzNL_EnableSwingDebugMode(VZNLHANDLE hDevice, VzBool bEnable);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD>ðڶ<EFBFBD>ģ<EFBFBD><EFBFBD>Log
*/
VZNLAPI int VzNL_EnableSwingLog(VZNLHANDLE hDevice, VzBool bEnable);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Log
*/
VZNLAPI void VzNL_PrintSwingLog(VZNLHANDLE hDevice);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Log
*/
VZNLAPI int VzNL_GetSwingLogCount(VZNLHANDLE hDevice);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Log
*/
VZNLAPI int VzNL_GetPSSwingLog(VZNLHANDLE hDevice, int nLogIdx, char szLog[256]);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD>ģ<EFBFBD><EFBFBD>Log
*/
VZNLAPI int VzNL_GetSwingDevLog(VZNLHANDLE hDevice, unsigned char* pTransData, unsigned int* pnDataLength);
/**
* @brief <EFBFBD><EFBFBD>ȡRTC״̬ 0<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_GetRTCStatus(VZNLHANDLE hDevice, int* pnErrorCode);
/// @brief
/// <20><>ȡAutoReg<65><67><EFBFBD><EFBFBD>
VZNLAPI int VzNL_GetAutoRegCount(VZNLHANDLE hDevice, int* pnErrorCode);
/// @brief
/// <20><>ȡAutoReg<65><67><EFBFBD><EFBFBD>
VZNLAPI int VzNL_GetAutoRegName(VZNLHANDLE hDevice, int nAutoRegIdx, char szRegName[64]);
/// @brief
/// <20><>ȡAutoReg<65><67><EFBFBD><EFBFBD>
/// @return <20><><EFBFBD><EFBFBD>AutoReg<65><67><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD>ʾΪint 2<><32><EFBFBD><EFBFBD>ʾΪfloat
VZNLAPI int VzNL_GetAutoRegType(VZNLHANDLE hDevice, int nAutoRegIdx, int* pnErrorCode);
/// @brief
/// <20><>ȡAutoRegֵ
VZNLAPI int VzNL_GetAutoRegVal(VZNLHANDLE hDevice, int nAutoRegIdx, unsigned char pData[4]);
/// @brief
/// <20><><EFBFBD><EFBFBD>AutoReg
VZNLAPI int VzNL_SetAutoRegVal(VZNLHANDLE hDevice, int nAutoRegIdx, const unsigned char* pData, unsigned int nDataLength);
/// @brief
/// <20><><EFBFBD><EFBFBD>Debug<75><EFBFBD><E6B4A2>־
VZNLAPI int VzNL_EnterDebugMode(VZNLHANDLE hDevice, VzBool bEnterDebug);
VZNLAPI VzBool VzNL_IsEnterDebugMode(VZNLHANDLE hDevice, int* pnErrorCode);
/// @brief <20><><EFBFBD><EFBFBD>/<2F><>ȡsensor<6F><72>ͷ<EFBFBD><CDB7>Ϣ
VZNLAPI int VzNL_SetSensorLenType(VZNLHANDLE hDevice, EVzSensorLenType eLenType);
VZNLAPI EVzSensorLenType VzNL_GetSensorLenType(VZNLHANDLE hDevice, int* pnErrorCode);
//@brief
//<2F><><EFBFBD><EFBFBD>/<2F><>ȡ<EFBFBD><C8A1>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VZNLAPI int VzNL_SetCameraServoPola(VZNLHANDLE hDevice, unsigned int nPola);
VZNLAPI int VzNL_GetCameraServoPola(VZNLHANDLE hDevice, unsigned int& nPola);
//@brief
//<2F><><EFBFBD><EFBFBD>/<2F><>ȡ<EFBFBD><C8A1>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
VZNLAPI int VzNL_SetCameraServoStatusPlusWidth(VZNLHANDLE hDevice, EVzServoStatusType eServoStatusType, unsigned int nPlusWidth);
VZNLAPI int VzNL_GetCameraServoStatusPlusWidth(VZNLHANDLE hDevice, EVzServoStatusType eServoStatusType, unsigned int& nPlusWidth);
//@brief
//<2F><><EFBFBD><EFBFBD>/<2F><>ȡ<EFBFBD><C8A1>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VZNLAPI int VzNL_SetCameraServoSpeedCycle(VZNLHANDLE hDevice, unsigned int nCycle);
VZNLAPI int VzNL_GetCameraServoSpeedCycle(VZNLHANDLE hDevice, unsigned int& nCycle);
//@brief
//<2F><><EFBFBD><EFBFBD>/<2F><>ȡ<EFBFBD>ȴ<EFBFBD>ʱ<EFBFBD><CAB1> (ms)
VZNLAPI int VzNL_SetCameraServoWaitTime(VZNLHANDLE hDevice, unsigned int nTime);
VZNLAPI int VzNL_GetCameraServoWaitTime(VZNLHANDLE hDevice, unsigned int& nTime);
//@brief
//<2F><><EFBFBD><EFBFBD>/<2F><>ȡ<EFBFBD>򿪡<EFBFBD><F2BFAAA1>رն<D8B1><D5B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VZNLAPI int VzNL_SetCameraServoMoveCount(VZNLHANDLE hDevice, unsigned int nCount);
VZNLAPI int VzNL_GetCameraServoMoveCount(VZNLHANDLE hDevice, unsigned int& nCount);
//<2F><><EFBFBD>ö<EFBFBD><C3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
VZNLAPI int VzNL_SetCameraServoPlusWidth(VZNLHANDLE hDevice, unsigned int nPlusWidth);
//<2F><><EFBFBD>ö<EFBFBD><C3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
VZNLAPI int VzNL_SetCameraServoDefaultPlusWidth(VZNLHANDLE hDevice, unsigned int nPlusWidth);
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
VZNLAPI int VzNL_GetCameraServoDefaultPlusWidth(VZNLHANDLE hDevice, unsigned int& nPlusWidth);
/// @brief <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD>CalibTool<6F><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VZNLAPI VzBool VzNL_HasCalibToolCap(VZNLHANDLE hDevice);
/// @brief д<><D0B4>/<2F><>ȡMapϵ<70><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VZNLAPI int VzNL_WriteSparseMapData(VZNLHANDLE hDevice, VzBool bCMode, VzBool bLeftOrRight, const unsigned char* pData, unsigned int nDataLength);
VZNLAPI int VzNL_ReadSparseMapData(VZNLHANDLE hDevice, VzBool bCMode, VzBool bLeftOrRight, unsigned char* pData, unsigned int nDataLength);
/// @brief <20><><EFBFBD><EFBFBD><EFBFBD>ڼ<EFBFBD><DABC><EFBFBD>ROIʱ<49><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۵<EFBFBD>ƫ<EFBFBD>ƽǶ<C6BD>
VZNLAPI int VzNL_SetROIOffsetAngle(VZNLHANDLE hDevice,float fLeftOffsetAngle,float fRightOffsetAngle);
VZNLAPI int VzNL_GetROIOffsetAngle(VZNLHANDLE hDevice, float& fLeftOffsetAngle, float& fRightOffsetAngle);
/// @brief <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>ROI<4F><49><EFBFBD>ٱ<EFBFBD><D9B1>Ĵ<EFBFBD>С
VZNLAPI int VzNL_GetROITraceTableSize(VZNLHANDLE hDevice, unsigned int* pnSize);
/// @brief <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>ROI<4F><49><EFBFBD>ٱ<EFBFBD>
VZNLAPI int VzNL_GetROITraceTable(VZNLHANDLE hDevice, unsigned int* pnLeftOffset, unsigned int* pnRightOffset, unsigned int nSize);
/// @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E3B7A8><EFBFBD><EFBFBD>
VZNLAPI int VzNL_SetAlgoParam(VZNLHANDLE hDevice, const char* pParamJson);
/// @brief <20><>ȡ<EFBFBD><EFBFBD><E3B7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
VZNLAPI int VzNL_GetAlgoParam(VZNLHANDLE hDevice, const char* pParamJson, char* pValueJson, unsigned int& nSize);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>֧<EFBFBD>ֹرռ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] bSupport <EFBFBD>Ƿ<EFBFBD>֧<EFBFBD><EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_SetIsSupportTurnOffLaserLight(VZNLHANDLE hDevice, VzBool bSupport);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>֧<EFBFBD>ּ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȵ<EFBFBD><EFBFBD>ڹ<EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] bSupport <EFBFBD>Ƿ<EFBFBD>֧<EFBFBD><EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_SetIsSupportChangeLaserLightLevel(VZNLHANDLE hDevice, VzBool bSupport);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>rgbСģ<EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] bRotate <EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>ת
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_SetRgbImageRotate180(VZNLHANDLE hDevice, VzBool bRotate);
/**
* @brief <EFBFBD>Ƿ<EFBFBD>rgbСģ<EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] pnErrorCode <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>NULL
* @return VzTrue<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת,VzTrue<EFBFBD><EFBFBD>û<EFBFBD><EFBFBD>
*/
VZNLAPI VzBool VzNL_IsRgbImageRotate180(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param hDevice <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] nSpeed <EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_CheckNetworkSpeed(VZNLHANDLE hDevice, unsigned int nSpeed[2]);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
* @param hDevice <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] nPupilDistance ͫ<EFBFBD><EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_SetPupilDistance(VZNLHANDLE hDevice, unsigned int nPupilDistance);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>modbus<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param hDevice <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] nBaudRate <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_SetModbusBaudRate(VZNLHANDLE hDevice, unsigned int nBaudRate);
VZNLAPI unsigned int VzNL_GetModbusBaudRate(VZNLHANDLE hDevice, int* pnErrorCode);
////////////////////////////////////////////////////////////////////////////////
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD>װ<EFBFBD><EFBFBD>
* @param hDevice [in] <EFBFBD>Handle
* @param bOnCamera [in] VzTrue<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/VzFalse<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD>رճɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_LaserEmitterOnCamera(VZNLHANDLE hDevice, VzBool bOnCamera);
VZNLAPI VzBool VzNL_HasLaserEmitterOnCamera(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD>źŽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param hDevice [in] <EFBFBD>Handle
* @param pnErrorCode [out] <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return VzTrue<EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>/VzFalse<EFBFBD>޴<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
*/
VZNLAPI VzBool VzNL_HasTriggerSignalToCamera(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵı<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
* @param hDevice [in] <EFBFBD>Handle
* @param pnErrorCode [out] <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return VzTrue<EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>/VzFalse<EFBFBD>޴<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
*/
VZNLAPI int VzNL_GetCameraTriggerEncoderData(VZNLHANDLE hDevice, SVzEncoderData* pEncoderData);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param hDevice <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param pnErrorCode <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>NULL
* @return VzTrue <EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> VzFalse <EFBFBD><EFBFBD>ʾû<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI VzBool VzNL_IsSupportStaticCalibParam(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param hDevice <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param pnErrorCode <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>NULL
* @return VzTrue <EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> VzFalse <EFBFBD><EFBFBD>ʾû<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_UseStaticCalibParam(VZNLHANDLE hDevice, VzBool bUseCalibParam);
VZNLAPI VzBool VzNL_IsUseStaticCalibParam(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD>۾<EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] pErrorCode ErrorCode
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>VzTrue
*/
VZNLAPI VzBool VzNL_LaserIsCalibration(VZNLHANDLE hDevice, int* pErrorCode);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ(ֻ֧<EFBFBD><EFBFBD>EyeCB<EFBFBD><EFBFBD><EFBFBD>ǹ<EFBFBD><EFBFBD><EFBFBD>)
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] nLaserThres <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ[Range:1~255]
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>ȷ
* @retval 0 <EFBFBD><EFBFBD>ʾ<EFBFBD>ɹ<EFBFBD>
* @retval <EFBFBD><EFBFBD>0 <EFBFBD><EFBFBD>ʾʧ<EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>VzNL_GetErrorInfo<EFBFBD><EFBFBD>ȡ
*/
VZNLAPI int VzNL_SetLaserThres(VZNLHANDLE hDevice, int nLaserThres);
VZNLAPI int VzNL_GetLaserThres(VZNLHANDLE hDevice, int* pnLaserThres);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
* @param [in] pEyeCBInfo <EFBFBD><EFBFBD><EFBFBD>Ϣ
* @param [in] byEyeIP <EFBFBD>۾<EFBFBD>IP
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʾ<EFBFBD>ɹ<EFBFBD>
*/
VZNLAPI int VzNL_ConfigEthernetEyeConfigInfo(const SVzNLEyeCBInfo* pEyeCBInfo,
unsigned char byEyeIP[4]);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
* @param [in] pEyeCBInfo <EFBFBD><EFBFBD><EFBFBD>Ϣ
* @param [in] byEyeIP <EFBFBD>۾<EFBFBD>IP
* @param [in] byMask <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] byGateWay <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʾ<EFBFBD>ɹ<EFBFBD>
*/
VZNLAPI int VzNL_ConfigEthernetInfo(const SVzNLEyeCBInfo* pEyeCBInfo,
unsigned char byEyeIP[4],
unsigned char byMask[4],
unsigned char byGateWay[4]);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
* @param [in] pEyeCBInfo <EFBFBD><EFBFBD><EFBFBD>Ϣ
* @param [in] eEyeIPType <EFBFBD>۾<EFBFBD>IP <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] byEyeIP <EFBFBD>۾<EFBFBD>IP
* @param [in] byMask <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] byGateWay <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʾ<EFBFBD>ɹ<EFBFBD>
*/
VZNLAPI int VzNL_ConfigEthernetInfoEx(const SVzNLEyeCBInfo* pEyeCBInfo,
EVzNLEthernetEyeIPType eEyeIPType,
unsigned char byEyeIP[4],
unsigned char byMask[4],
unsigned char byGateWay[4]);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] pEyeCBInfo <EFBFBD><EFBFBD><EFBFBD>Ϣ
* @param [in] eIPType IP<EFBFBD><EFBFBD><EFBFBD><EFBFBD>[keNLEthernetEyeIPType_StaticIP:<EFBFBD><EFBFBD>̬IP keNLEthernetEyeIPType_DHCP:<EFBFBD><EFBFBD>̬<EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP]
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʾ<EFBFBD>ɹ<EFBFBD>
*/
VZNLAPI int VzNL_ChangeEthernetIPType(const SVzNLEyeCBInfo* pEyeCBInfo,
EVzNLEthernetEyeIPType eIPType);
/**
* @brief <EFBFBD><EFBFBD>ȡRGBD<EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>
* @param hDevice <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param dCCMVal CCMֵ
* @return <EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD> ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
*/
VZNLAPI int VzNL_GetRGBAsyncRect(VZNLHANDLE hDevice, SVzNLROIRect pROIRect[2]);
/**
* @brief <EFBFBD><EFBFBD>ȡRGB<EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD>X<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ұ<EFBFBD><EFBFBD>С(mm)
* @param hDevice <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param nViewDx X<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ұ<EFBFBD><EFBFBD>С(mm)
* @return <EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD> ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
*/
VZNLAPI int VzNL_GetRGBViewXSize(VZNLHANDLE hDevice, unsigned int& nViewDx);
/////////////////////////////////////////////////////////////////////////////
/// @}
/// @name <20><>ϵͳ<CFB5><CDB3><EFBFBD>غ<EFBFBD><D8BA><EFBFBD>(gtxר<78>ýӿ<C3BD>)
/// @{
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>ǰϵͳ<EFBFBD>б<EFBFBD>
* @param hDevice <EFBFBD>Handle
* @param pnCount <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ<EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD>
* @return ϵͳ<EFBFBD>б<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI SVzSystemProjectInfo* VzNL_GetSystemPrjArray(VZNLHANDLE hDevice, int* pnCount);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>ǰϵͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param hDevice <EFBFBD>Handle
* @param nCurSel Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ڼ<EFBFBD><EFBFBD><EFBFBD>ϵͳΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>ϵͳ
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>0Ϊ<EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>GetErrorString<EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_SwitchSystemPrj(VZNLHANDLE hDevice, int nCurSel);
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>ǰϵͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param hDevice <EFBFBD>Handle
* @return <EFBFBD><EFBFBD>ǰϵͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_GetCurrentSystemPrj(VZNLHANDLE hDevice);
/**
* @brief <EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>(s)
* @param hDevice <EFBFBD>Handle
* @param pnErrorCode <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>
*/
VZNLAPI double VzNL_GetSystemRuntime(VZNLHANDLE hDevice, int* pnErrorCode);
/// @}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] dStandardObjectHeight <EFBFBD><EFBFBD><EFBFBD>ñ<EFBFBD>߶<EFBFBD>
* @param [in] pTopROI <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ROI<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>
* @param [in] nTopROICount <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ROI<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] pBottomROI <EFBFBD>ײ<EFBFBD>ROI<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>
* @param [in] nBottomROICount <EFBFBD>ײ<EFBFBD>ROI<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>0Ϊ<EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_SetLaserStandard(VZNLHANDLE hDevice, double dStandardObjectHeight,
const SVzNLROIRect* pTopROI, const int nTopROICount,
const SVzNLROIRect* pBottomROI, const int nBottomROICount);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>0Ϊ<EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_ClearLaserStandard(VZNLHANDLE hDevice);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڳ<EFBFBD>ʱʱ<EFBFBD><EFBFBD>
* @param hDevice <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param nTimeOut <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڳ<EFBFBD>ʱʱ<EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD> ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
*/
VZNLAPI int VzNL_SetRGBAutoAdjustTimeOut(VZNLHANDLE hDevice, unsigned int nTimeOut);
VZNLAPI unsigned int VzNL_GetRGBAutoAdjustTimeOut(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>ȷ
* @retval 0 <EFBFBD><EFBFBD>ʾ<EFBFBD>ɹ<EFBFBD>
* @retval <EFBFBD><EFBFBD>0 <EFBFBD><EFBFBD>ʾʧ<EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>VzNL_GetErrorInfo<EFBFBD><EFBFBD>ȡ
*/
VZNLAPI int VzNL_EnableSaveSwingParam(VZNLHANDLE hDevice, VzBool bEnable);
/**
* @brief <EFBFBD><EFBFBD>դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>ĵ<EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] bEnable VzTrueΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>ĵVzFalseΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_SetKeepFrontPoint(VZNLHANDLE hDevice, VzBool bEnable);
VZNLAPI int VzNL_GetKeepFrontPoint(VZNLHANDLE hDevice, VzBool* bEnable);
/**
* @brief <EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȲ<EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] bEnable VzTrueΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>ĵVzFalseΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_EnableCheckSwingAngleSpeed(VZNLHANDLE hDevice, VzBool bEnable);
VZNLAPI int VzNL_IsEnableCheckSwingAngleSpeed(VZNLHANDLE hDevice, VzBool* bEnable);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD>ر<EFBFBD>RGBͼ<EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param hDevice <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] bEnable <EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_EnableRotateRGBImage(VZNLHANDLE hDevice, VzBool bEnable);
VZNLAPI VzBool VzNL_IsEnableRotateRGBImage(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD>Ƿ<EFBFBD>֧<EFBFBD>ֶ<EFBFBD>̬<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param hDevice <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return ֧<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>VzTrue
*/
VZNLAPI VzBool VzNL_IsSupportDynamicCode(VZNLHANDLE hDevice);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD>̬<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param hDevice <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] dynamicCode <EFBFBD><EFBFBD>̬<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_CheckDynamicCode(VZNLHANDLE hDevice, unsigned char byDynamicCode[32]);
/**
* @brief <EFBFBD>Ƿ<EFBFBD>֧<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>ģʽ
* @param hDevice <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return ֧<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>VzTrue
*/
VZNLAPI VzBool VzNL_IsSupportEmulationMode(VZNLHANDLE hDevice);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD>رշ<EFBFBD><EFBFBD><EFBFBD>ģʽ
* @param hDevice <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return ֧<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>VzTrue
*/
VZNLAPI int VzNL_EnableEmulationMode(VZNLHANDLE hDevice,VzBool bEnable);
VZNLAPI VzBool VzNL_IsEnableEmulationMode(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><EFBFBD><EFBFBD>
* @param hDevice <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param nWidthAndHeight <EFBFBD><EFBFBD> + <EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>0Ϊ<EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_ConfigEmulationResolution(VZNLHANDLE hDevice, unsigned int nWidthAndHeight[2]);
VZNLAPI int VzNL_GetEmulationResolution(VZNLHANDLE hDevice, unsigned int nWidthAndHeight[2]);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĿͼƬ<EFBFBD>Ͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD>
* @param hDevice <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] szDataPath <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ¼<EFBFBD><EFBFBD>2DData<EFBFBD>ĸ<EFBFBD>Ŀ¼<EFBFBD><EFBFBD>
* @param [in] szParamPath <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ¼
* @param [in] pszImagePath ָ<EFBFBD><EFBFBD>һ֡<EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ·<EFBFBD><EFBFBD>+<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>ǰ׺,<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,D:\15-18-14\2DData\1
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>0Ϊ<EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_ConfigEmulationParam(VZNLHANDLE hDevice, const char* pszDataPath, const char* pszParamPath, const char* pszImagePath);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param hDevice <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] szImagePath ȫ·<EFBFBD><EFBFBD>+<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>ǰ׺,<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,D:\15-18-14\2DData\1
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>0Ϊ<EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_PushEmulationDetectImageData(VZNLHANDLE hDevice, const char* pszImagePath);
/**
* @brief <EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] nPointInterval <EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>0Ϊ<EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_EmulationDetectLaser(VZNLHANDLE hDevice, const char* pszImagePath);
/**
* @brief <EFBFBD>Ƿ<EFBFBD>֧<EFBFBD><EFBFBD>RGBͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת
* @param hDevice <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return ֧<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>VzTrue
*/
VZNLAPI VzBool VzNL_IsSupportRGBRotateType(VZNLHANDLE hDevice);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>RGBͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת
* @param hDevice <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return ֧<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>VzTrue
*/
VZNLAPI int VzNL_SetRGBRotateType(VZNLHANDLE hDevice, EVzImageRotateType eRotateType);
VZNLAPI EVzImageRotateType VzNL_GetRGBRotateType(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param hDevice <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] eConfigType <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_SaveDustCoverConfigType(VZNLHANDLE hDevice, EVzDustCoverConfigType eConfigType);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>ڲ<EFBFBD>
* @param hDevice <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] dMatrix <EFBFBD><EFBFBD>Ŀ<EFBFBD>ڲξ<EFBFBD><EFBFBD><EFBFBD> 3*3 + 5*1
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_SaveLeftEyeCalibData(VZNLHANDLE hDevice, double dMatrix[14]);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD>3D<EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param hDevice <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] dStereo2Left 3D<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4*4
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_SaveStereo2LeftEyeMatrix(VZNLHANDLE hDevice, double dMatrix[16]);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD>3D<EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param hDevice <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] dLeft2Stereo <EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD>3D<EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4*4
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_SaveLeftEye2StereoMatrix(VZNLHANDLE hDevice, double dMatrix[16]);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD>ر<EFBFBD><EFBFBD>Ƿ<EFBFBD>֧<EFBFBD>ֱ<EFBFBD><EFBFBD><EFBFBD>ԭʼ<EFBFBD><EFBFBD><EFBFBD>ݵĹ<EFBFBD><EFBFBD><EFBFBD>
* @param hDevice <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param bEnable VzTrue:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>VzFalse:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return ֧<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>VzTrue
*/
VZNLAPI int VzNL_EnableSaveOriData(VZNLHANDLE hDevice, VzBool bEnable);
VZNLAPI VzBool VzNL_IsEnableSaveOriData(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief PL<EFBFBD>Ƿ<EFBFBD>֧<EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] pnErrorCode <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,Ϊnullptrʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>VzTrue<EFBFBD><EFBFBD>ʾ֧<EFBFBD>֣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>֧<EFBFBD>֡<EFBFBD>
*/
VZNLAPI VzBool VzNL_IsSupportStrobeByPl(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӳ<EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] bInstall VzTrue:<EFBFBD><EFBFBD>װ<EFBFBD>ˣ<EFBFBD>VzFalse:δ<EFBFBD><EFBFBD>װ
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_SetInstallStrobeDevice(VZNLHANDLE hDevice, VzBool bInstall);
/**
* @brief <EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӳ<EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] pnErrorCode <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,Ϊnullptrʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>VzTrue<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>װ<EFBFBD>ˣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD>
*/
VZNLAPI VzBool VzNL_IsInstallStrobeDevice(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief PL<EFBFBD>Ƿ<EFBFBD>֧<EFBFBD><EFBFBD>PWM<EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD>ڹ<EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] pnErrorCode <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,Ϊnullptrʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>VzTrue<EFBFBD><EFBFBD>ʾ֧<EFBFBD>֣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>֧<EFBFBD>֡<EFBFBD>
*/
VZNLAPI VzBool VzNL_IsSupportPwmByPl(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD>PWM<EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD>ڵ<EFBFBD>Ӳ<EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] bInstall VzTrue:<EFBFBD><EFBFBD>װ<EFBFBD>ˣ<EFBFBD>VzFalse:δ<EFBFBD><EFBFBD>װ
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_SetInstallPwmDevice(VZNLHANDLE hDevice, VzBool bInstall);
/**
* @brief <EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD>PWM<EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD>ڵ<EFBFBD>Ӳ<EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] pnErrorCode <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,Ϊnullptrʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>VzTrue<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>װ<EFBFBD>ˣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD>
*/
VZNLAPI VzBool VzNL_IsInstallPwmDevice(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief PL<EFBFBD>Ƿ<EFBFBD>֧<EFBFBD>ֲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƹ<EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] pnErrorCode <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,Ϊnullptrʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>VzTrue<EFBFBD><EFBFBD>ʾ֧<EFBFBD>֣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>֧<EFBFBD>֡<EFBFBD>
*/
VZNLAPI VzBool VzNL_IsSupportExtLightByPl(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD>˲<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>Ӳ<EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] bInstall VzTrue:<EFBFBD><EFBFBD>װ<EFBFBD>ˣ<EFBFBD>VzFalse:δ<EFBFBD><EFBFBD>װ
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_SetInstallExtLightDevice(VZNLHANDLE hDevice, VzBool bInstall);
/**
* @brief <EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD>˲<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>Ӳ<EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] pnErrorCode <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,Ϊnullptrʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>VzTrue<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>װ<EFBFBD>ˣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD>
*/
VZNLAPI VzBool VzNL_IsInstallExtLightDevice(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Y<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] dYData Y<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_SetLaserFilterYData(VZNLHANDLE hDevice, double dYData[2]);
VZNLAPI int VzNL_GetLaserFilterYData(VZNLHANDLE hDevice, double dYData[2]);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Z<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] dYData Z<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_SetLaserFilterZData(VZNLHANDLE hDevice, double dZData[2]);
VZNLAPI int VzNL_GetLaserFilterZData(VZNLHANDLE hDevice, double dZData[2]);
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Աȶ<EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] nRatio <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Աȶȣ<EFBFBD>0Ϊ<EFBFBD><EFBFBD>Ŀ<EFBFBD>ĶԱȶȣ<EFBFBD>1Ϊ<EFBFBD><EFBFBD>Ŀ<EFBFBD>ĶԱȶ<EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_GetLaserContrastRatio(VZNLHANDLE hDevice, unsigned int nRatio[2]);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD>ȡ<EFBFBD>˶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] EVzAntiReflectCmpsDirType <EFBFBD>˶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_SetAntiReflectCmpsDirType(VZNLHANDLE hDevice, EVzAntiReflectCmpsDirType eAntiReflectCmpsDirType);
VZNLAPI EVzAntiReflectCmpsDirType VzNL_GetAntiReflectCmpsDirType(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD>ȡ<EFBFBD>˶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] nValue <EFBFBD>˶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_SetAntiReflectCmpsDot(VZNLHANDLE hDevice, unsigned int nValue);
VZNLAPI unsigned int VzNL_GetAntiReflectCmpsDot(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>֧<EFBFBD><EFBFBD><EFBFBD>Ƹ˷<EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] bInstall VzTrue:֧<EFBFBD>֣<EFBFBD>VzFalse:<EFBFBD><EFBFBD>֧<EFBFBD><EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_SetSupportLinearActuatorDevice(VZNLHANDLE hDevice, VzBool bSupport);
/**
* @brief <EFBFBD>Ƿ<EFBFBD>֧<EFBFBD><EFBFBD><EFBFBD>Ƹ˷<EFBFBD><EFBFBD>ǿ<EFBFBD><EFBFBD>ƵĹ<EFBFBD><EFBFBD><EFBFBD>
* @param hDevice <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param pnErrorCode <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>NULL
* @return VzTrue <EFBFBD><EFBFBD>ʾ֧<EFBFBD><EFBFBD> VzFalse <EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>֧<EFBFBD><EFBFBD>
*/
VZNLAPI VzBool VzNL_IsSupportLinearActuatorCover(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD>Ƹ˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_LinearActuatorFindZero(VZNLHANDLE hDevice);
VZNLAPI int VzNL_LinearActuatorMFindZero(VZNLHANDLE hDevice);
/** @brief <20><><EFBFBD><EFBFBD>/<2F>ر<EFBFBD><D8B1>Ƹ˷<C6B8><CBB7>ǿ<EFBFBD><C7BF>ƵĹ<C6B5><C4B9><EFBFBD>
* @param hDevice [in] <EFBFBD>Handle
* @param bEnable [in] <EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD>ر<EFBFBD>
* @return <EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD> ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
*/
VZNLAPI int VzNL_EnableLinearActuatorCover(VZNLHANDLE hDevice, VzBool bEnable);
VZNLAPI VzBool VzNL_IsEnableLinearActuatorCover(VZNLHANDLE hDevice, int* pnErrorCode);
/** @brief <20>Ƹ˷<C6B8><CBB7>DZ<EFBFBD><C7B1><EFBFBD><EFBFBD>رյ<D8B1><D5B5><EFBFBD>λ<EFBFBD><CEBB>
* @param hDevice [in] <EFBFBD>Handle
* @return <EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD> ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
*/
VZNLAPI int VzNL_LinearActuatorSaveClosePos(VZNLHANDLE hDevice);
/** @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param hDevice [in] <EFBFBD>Handle
* @param eImageType [in] ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD> ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
*/
VZNLAPI int VzNL_SetLRSensorImageType(VZNLHANDLE hDevice, EVzNLImageType eLeftImageType, EVzNLImageType eRightImageType);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD>رտ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [out] eAntiReflectGainType <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_EnableAntiReflectDebug(VZNLHANDLE hDevice, VzBool bEnable);
VZNLAPI VzBool VzNL_IsEnableAntiReflectDebug(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD>á<EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD>˶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] bInstall <EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>װ
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_InstallServoMotor(VZNLHANDLE hDevice, VzBool bInstall);
VZNLAPI VzBool VzNL_IsInstallServoMotor(VZNLHANDLE hDevice, int* pnErrorCode);
VZNLAPI int VzNL_WriteDebugRegister(VZNLHANDLE hDevice, unsigned int nAddress,unsigned int nValue);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD>á<EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [out] eAntiReflectGainType <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_SetAutoCoverControlParam(VZNLHANDLE hDevice, SVzAutoCoverControlParam sAutoCoverControlParam);
VZNLAPI int VzNL_GetAutoCoverControlParam(VZNLHANDLE hDevice, SVzAutoCoverControlParam* psAutoCoverControlParam);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] dNearDistance <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] dFarDistance Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>ȷ
* @retval 0 <EFBFBD><EFBFBD>ʾ<EFBFBD>ɹ<EFBFBD>
* @retval <EFBFBD><EFBFBD>0 <EFBFBD><EFBFBD>ʾʧ<EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>VzNL_GetErrorInfo<EFBFBD><EFBFBD>ȡ
*/
VZNLAPI int VzNL_SetMaxWorkRange(VZNLHANDLE hDevice, double dNearDistance, double dFarDistance);
VZNLAPI int VzNL_GetMaxWorkRange(VZNLHANDLE hDevice, double* pdNearDistance, double* pdFarDistance);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD>ȡ˫Ŀͼ<EFBFBD><EFBFBD>bitλ<EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] nValue bitλ<EFBFBD><EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_SetImageBitDepth(VZNLHANDLE hDevice, unsigned int nValue);
VZNLAPI unsigned int VzNL_GetImageBitDepth(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD>ȡ˫Ŀͼ<EFBFBD><EFBFBD>16λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת8λ<EFBFBD><EFBFBD><EFBFBD>ݶ<EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] nValue <EFBFBD>˶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_SetImageConvertAlignPos(VZNLHANDLE hDevice, unsigned int nValue);
VZNLAPI unsigned int VzNL_GetImageConvertAlignPos(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD><EFBFBD><EFBFBD>Ȧ<EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] nValue Ȧ<EFBFBD><EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_SetOpenCoverRound(VZNLHANDLE hDevice, int nValue);
VZNLAPI int VzNL_GetOpenCoverRound(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>ǹر<EFBFBD>ƫ<EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] nValue ƫ<EFBFBD><EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_SetCloseCoverOffset(VZNLHANDLE hDevice, int nValue);
VZNLAPI int VzNL_GetCloseCoverOffset(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>ǽǶ<EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] nAngle <EFBFBD>Ƕ<EFBFBD> 1-100
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_SetDustOpenAngle(VZNLHANDLE hDevice, int nAngle);
VZNLAPI int VzNL_GetDustOpenAngle(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD>ȡ<EFBFBD>ذڽ<EFBFBD><EFBFBD>ٶ<EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] nAngleSpeed <EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>ȷ
* @retval 0 <EFBFBD><EFBFBD>ʾ<EFBFBD>ɹ<EFBFBD>
* @retval <EFBFBD><EFBFBD>0 <EFBFBD><EFBFBD>ʾʧ<EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>VzNL_GetErrorInfo<EFBFBD><EFBFBD>ȡ
*/
VZNLAPI int VzNL_SetSwingBackAngleSpeed(VZNLHANDLE hDevice, int nAngleSpeed);
VZNLAPI int VzNL_GetSwingBackAngleSpeed(VZNLHANDLE hDevice, int* pnAngleSpeed);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD>ðڶ<EFBFBD><EFBFBD>ǶȺ͵<EFBFBD>ǰ<EFBFBD>Ƕ<EFBFBD><EFBFBD><EFBFBD>ֵ
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] fAngle <EFBFBD>Ƕ<EFBFBD><EFBFBD><EFBFBD>ֵ
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>ȷ
* @retval 0 <EFBFBD><EFBFBD>ʾ<EFBFBD>ɹ<EFBFBD>
* @retval <EFBFBD><EFBFBD>0 <EFBFBD><EFBFBD>ʾʧ<EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>VzNL_GetErrorInfo<EFBFBD><EFBFBD>ȡ
*/
VZNLAPI int VzNL_SetRoateAngleThres(VZNLHANDLE hDevice, float fAngle);
VZNLAPI float VzNL_GetRoateAngleThres(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>ɫת<EFBFBD><EFBFBD>ӳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] nData ӳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_SetSensorColorMapData(VZNLHANDLE hDevice, unsigned char szData[4096]);
VZNLAPI int VzNL_GetSensorColorMapData(VZNLHANDLE hDevice, unsigned char szData[4096]);
/**
* @brief ʹ<EFBFBD><EFBFBD>485<EFBFBD>ӿ<EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] bEnable <EFBFBD>Ƿ<EFBFBD>ʹ<EFBFBD><EFBFBD>485<EFBFBD>ӿ<EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_Enable485Signal(VZNLHANDLE hDevice, VzBool bEnable);
VZNLAPI VzBool VzNL_IsEnable485Signal(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief ѡ<EFBFBD><EFBFBD>RGB Sensor<EFBFBD><EFBFBD>ijһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] nValue <EFBFBD><EFBFBD>ֵ
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_SetRGBOutputChannel(VZNLHANDLE hDevice, EVzRGBOutputChannelType eType);
VZNLAPI EVzRGBOutputChannelType VzNL_GetRGBOutputChannel(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀsensor<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] nValue <EFBFBD><EFBFBD>ֵ
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_SetLRSensorType(VZNLHANDLE hDevice, EVzLRSensorType eType);
VZNLAPI EVzLRSensorType VzNL_GetLRSensorType(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>˫Ŀ<EFBFBD><EFBFBD>ɫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>RGB<EFBFBD>ع<EFBFBD>
* @param hDevice <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param nValue
* @return <EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD> ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
*/
VZNLAPI int VzNL_SetLRRGBExpose(VZNLHANDLE hDevice, unsigned int nValue);
VZNLAPI unsigned int VzNL_GetLRRGBExpose(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>İݶ<EFBFBD>ͼ<EFBFBD><EFBFBD>
* @param hDevice <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param szLeftFileName <EFBFBD><EFBFBD>Ŀͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>
* @param szRightFileName <EFBFBD><EFBFBD>Ŀͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD> ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
*/
VZNLAPI int VzNL_SaveLRBayerImage(VZNLHANDLE hDevice, const char* szLeftFileName, const char* szRightFileName);
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD>ڶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] pnErrorCode <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD>ڶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD>
*/
VZNLAPI unsigned int VzNL_GetSwingEncode(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief PL<EFBFBD>Ƿ<EFBFBD>֧<EFBFBD><EFBFBD>Ch3<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] pnErrorCode <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,Ϊnullptrʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>VzTrue<EFBFBD><EFBFBD>ʾ֧<EFBFBD>֣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>֧<EFBFBD>֡<EFBFBD>
*/
VZNLAPI VzBool VzNL_IsSupportCh3ByPl(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD>Ch3<EFBFBD><EFBFBD>Ӳ<EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] bInstall VzTrue:<EFBFBD><EFBFBD>װ<EFBFBD>ˣ<EFBFBD>VzFalse:δ<EFBFBD><EFBFBD>װ
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_SetInstallCh3Device(VZNLHANDLE hDevice, VzBool bInstall);
/**
* @brief <EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD>Ch3<EFBFBD><EFBFBD>Ӳ<EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] pnErrorCode <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,Ϊnullptrʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>VzTrue<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>װ<EFBFBD>ˣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD>
*/
VZNLAPI VzBool VzNL_IsInstallCh3Device(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><EFBFBD>RGB HDR<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] pnErrorCode <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,Ϊnullptrʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>VzTrue<EFBFBD><EFBFBD>ʾ֧<EFBFBD>֣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>֧<EFBFBD>֡<EFBFBD>
*/
VZNLAPI int VzNL_SetIsSupportRGBHDR(VZNLHANDLE hDevice, VzBool bSupport);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>̬ɨ<EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD>ܲɼ<EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>ʱ<EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] eExposeMode [keVzNLExposeMode_Fix=<EFBFBD><EFBFBD>ֵ<EFBFBD>ع<EFBFBD> / keVzNLExposeMode_Auto=<EFBFBD>Զ<EFBFBD><EFBFBD>ع<EFBFBD>]
* @param [in] nExposeTime <EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>ʱ<EFBFBD><EFBFBD>[0~65535]
* @return <EFBFBD><EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @note: Ŀǰ<EFBFBD>ǹ<EFBFBD><EFBFBD><EFBFBD>/<EFBFBD>ǹ<EFBFBD><EFBFBD>۽<EFBFBD>֧<EFBFBD>ֶ<EFBFBD>ֵ<EFBFBD>ع<EFBFBD>
*/
VZNLAPI int VzNL_ConfigSideCaptureExpose(VZNLHANDLE hDevice, EVzNLExposeMode eExposeMode, unsigned int nExposeTime);
VZNLAPI int VzNL_GetSideCaptureExpose(VZNLHANDLE hDevice, EVzNLExposeMode* peExposeMode, unsigned int* pnExposeTime);
/**
* @brief <EFBFBD>Ƿ<EFBFBD>֧<EFBFBD>־<EFBFBD>̬ɨ<EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] pnErrorCode <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,Ϊnullptrʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>VzTrue<EFBFBD><EFBFBD>ʾ֧<EFBFBD>֣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD>֡<EFBFBD>
*/
VZNLAPI VzBool VzNL_IsSupportSideCapture(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief ʹ<EFBFBD>ܾ<EFBFBD>̬ɨ<EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] bEnable <EFBFBD>Ƿ<EFBFBD>ʹ<EFBFBD><EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_EnableSideCapture(VZNLHANDLE hDevice, VzBool bEnable);
VZNLAPI VzBool VzNL_IsEnableSideCapture(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD>Ƿ<EFBFBD>֧<EFBFBD>ֳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] pnErrorCode <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,Ϊnullptrʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>VzTrue<EFBFBD><EFBFBD>ʾ֧<EFBFBD>֣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD>֡<EFBFBD>
*/
VZNLAPI VzBool VzNL_IsSupportLowExp(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief ʹ<EFBFBD>ܳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] bEnable <EFBFBD>Ƿ<EFBFBD>ʹ<EFBFBD><EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_EnableLowExp(VZNLHANDLE hDevice, VzBool bEnable);
VZNLAPI VzBool VzNL_IsEnableLowExp(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief ʹ<EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] bEnable <EFBFBD>Ƿ<EFBFBD>ʹ<EFBFBD><EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_EnableISPBeautify(VZNLHANDLE hDevice, VzBool bEnable);
VZNLAPI VzBool VzNL_IsEnableISPBeautify(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief ʹ<EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] bEnable <EFBFBD>Ƿ<EFBFBD>ʹ<EFBFBD><EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_EnableISPAWB(VZNLHANDLE hDevice, VzBool bEnable);
VZNLAPI VzBool VzNL_IsEnableISPAWB(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief ʹ<EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD>CCM
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] bEnable <EFBFBD>Ƿ<EFBFBD>ʹ<EFBFBD><EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_EnableISPCCM(VZNLHANDLE hDevice, VzBool bEnable);
VZNLAPI VzBool VzNL_IsEnableISPCCM(VZNLHANDLE hDevice, int* pnErrorCode);
VZNLAPI int VzNL_GetLaser2DFResult(VZNLHANDLE hDevice, SVzNL2DPositionF* p2DPoint, int* pnCount);
/**
* @brief <EFBFBD>Ƿ<EFBFBD>֧<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] pnErrorCode <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,Ϊnullptrʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>VzTrue<EFBFBD><EFBFBD>ʾ֧<EFBFBD>֣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD>֡<EFBFBD>
*/
VZNLAPI VzBool VzNL_IsSupportCamFeatureData(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] nData <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_SetCamFeatureData(VZNLHANDLE hDevice, SVzFeatureData sVzFeatureData);
VZNLAPI int VzNL_GetCamFeatureData(VZNLHANDLE hDevice, SVzFeatureData* psVzFeatureData);
/**
* @brief <EFBFBD>Ƿ<EFBFBD>֧<EFBFBD>ֶ<EFBFBD>֡<EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD>ۼӹ<EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] pnErrorCode <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,Ϊnullptrʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>VzTrue<EFBFBD><EFBFBD>ʾ֧<EFBFBD>֣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD>֡<EFBFBD>
*/
VZNLAPI VzBool VzNL_IsSupportMulRate(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD>ۼ<EFBFBD>֡<EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] nRate ֡<EFBFBD><EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_SetMulInterRate(VZNLHANDLE hDevice, unsigned int nRate);
VZNLAPI unsigned int VzNL_GetMulInterRate(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡һ<EFBFBD><EFBFBD>ѭ<EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] nCycle ѭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_SetMulRateCycle(VZNLHANDLE hDevice, unsigned int nCycle);
VZNLAPI unsigned int VzNL_GetMulRateCycle(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>hdr<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD>ĵ<EFBFBD><EFBFBD>ع<EFBFBD>֡
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] nNum <EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_SetLowExpNum(VZNLHANDLE hDevice, unsigned int nNum);
VZNLAPI unsigned int VzNL_GetLowExpNum(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>hdr<EFBFBD><EFBFBD><EFBFBD>ò<EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] nCycle ѭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] nRate ֡<EFBFBD><EFBFBD>
* @param [in] nNum <EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_SetHDRConfig(VZNLHANDLE hDevice, unsigned int nCycle, unsigned int nRate,unsigned int nNum);
VZNLAPI int VzNL_GetHDRConfig(VZNLHANDLE hDevice, unsigned int* pnCycle, unsigned int* pnRate, unsigned int* pnNum);
/**
* @brief <EFBFBD>Ƿ<EFBFBD>֧<EFBFBD>ִ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] pnErrorCode <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,Ϊnullptrʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>VzTrue<EFBFBD><EFBFBD>ʾ֧<EFBFBD>֣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD>֡<EFBFBD>
*/
VZNLAPI VzBool VzNL_IsSupportTrigDelay(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] nDelay <EFBFBD><EFBFBD>ʱ
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_SetTrigDelay(VZNLHANDLE hDevice, unsigned int nDelay);
VZNLAPI unsigned int VzNL_GetTrigDelay(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD>԰ڶ<EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><EFBFBD>λ
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] pnErrorCode <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD>԰ڶ<EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><EFBFBD>λ
*/
VZNLAPI int VzNL_QueryMotorZero(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD>Ƿ<EFBFBD>֧<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] pnErrorCode <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,Ϊnullptrʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>VzTrue<EFBFBD><EFBFBD>ʾ֧<EFBFBD>֣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD>֡<EFBFBD>
*/
VZNLAPI VzBool VzNL_IsSupportTimeStamp(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief ʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] bEnable <EFBFBD>Ƿ<EFBFBD>ʹ<EFBFBD><EFBFBD>
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI int VzNL_EnableTimeStamp(VZNLHANDLE hDevice, VzBool bEnable);
VZNLAPI VzBool VzNL_IsEnableTimeStamp(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD>ϲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD>֧<EFBFBD><EFBFBD><EFBFBD>ǹ<EFBFBD><EFBFBD><EFBFBD>
* @param hDevice <EFBFBD>Handle
*/
VZNLAPI int VzNL_SaveDefaultConfig(VZNLHANDLE hDevice, const void* pExtData, unsigned int nExtDataLength);
2025-07-23 01:35:14 +08:00
#endif