2026-03-17 22:27:58 +08:00
# ifndef __VIZUM_DETECTED_COUNTER_HEADER__
# define __VIZUM_DETECTED_COUNTER_HEADER__
# include "VZNL_Export.h"
# include "VZNL_Types.h"
/**
* @ defgroup <EFBFBD> ֽ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ author Mjw
* @ version 1.0
* @ date 2019.09 .10
* @ {
*/
/// @brief
/// <20> <> ȡ<EFBFBD> Զ<EFBFBD> <D4B6> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
typedef int ( * VzNL_GetCounterResultCB ) ( SVzNL3DPosition * p3DPoint , SVzNL2DPosition * p2DPoint , int nCount , unsigned long long nTimeStamp , double dTotleOffset , double dStep , SVzNLImageData * pLeftImage , SVzNLImageData * pRightImage , void * pParam ) ;
/// @brief
/// <20> <> ʼ <EFBFBD> <CABC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
/// <param name = "hDevice">[in]<5D> 豸<EFBFBD> <E8B1B8> <EFBFBD> <EFBFBD> </param>
/// @return <20> <> <EFBFBD> <EFBFBD> 0Ϊ<30> <CEAA> ȷ<EFBFBD> <C8B7> ʧ<EFBFBD> ܷ<EFBFBD> <DCB7> ش<EFBFBD> <D8B4> <EFBFBD> <EFBFBD> <EFBFBD>
VZNLAPI int VzNL_BeginDetectCounter ( VZNLHANDLE hDevice , VzBool bCounterOrLabel ) ;
/// @brief
/// һ <> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
VZNLAPI int VzNL_EnableSimpleResultMode ( VZNLHANDLE hDevice , VzBool bEnableSimpleMode ) ;
/// @brief
/// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> -
/// <param name = "hDevice">[in]<5D> 豸<EFBFBD> <E8B1B8> <EFBFBD> <EFBFBD> </param>
/// <param name = "nPointInterval">[in]<5D> <> <EFBFBD> ļ<EFBFBD> <C4BC> <EFBFBD> </param>
/// @return <20> <> <EFBFBD> <EFBFBD> 0Ϊ<30> <CEAA> ȷ<EFBFBD> <C8B7> ʧ<EFBFBD> ܷ<EFBFBD> <DCB7> ش<EFBFBD> <D8B4> <EFBFBD> <EFBFBD> <EFBFBD>
VZNLAPI int VzNL_DetectCounterLaser ( VZNLHANDLE hDevice , int nPointInterval ) ;
/// @brief
/// <20> <> ȡ<EFBFBD> <C8A1> <EFBFBD> <EFBFBD> <EFBFBD> ߽<EFBFBD> <DFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ĸ<EFBFBD> <C4B8> <EFBFBD>
/// <param name = "hDevice">[in]<5D> 豸<EFBFBD> <E8B1B8> <EFBFBD> <EFBFBD> </param>
/// @return <20> <> <EFBFBD> ĸ<EFBFBD> <C4B8> <EFBFBD>
VZNLAPI int VzNL_GetCounterLaserResultPointCount ( VZNLHANDLE hDevice ) ;
/// @brief
/// <20> <> ȡ<EFBFBD> <C8A1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 2D<32> <44> <EFBFBD> <EFBFBD>
/// <param name = "hDevice">[in]<5D> 豸<EFBFBD> <E8B1B8> <EFBFBD> <EFBFBD> </param>
/// <param name = "p2DPoint">[out]2D<32> 㣬<EFBFBD> ڴ<EFBFBD> <DAB4> ռ <EFBFBD> <D5BC> <EFBFBD> <EFBFBD> û<EFBFBD> <C3BB> <EFBFBD> <EFBFBD> <EFBFBD> </param>
/// <param name = "pnCount">[in/out]<5D> <> <EFBFBD> <EFBFBD> :<3A> û<EFBFBD> <C3BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> SVzNL2DPoint<6E> Ľṹ<C4BD> <E1B9B9> <EFBFBD> <EFBFBD> ;<3B> <> <EFBFBD> <EFBFBD> :<3A> û<EFBFBD> <C3BB> <EFBFBD> Ҫ<EFBFBD> <D2AA> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ٸ<EFBFBD> SVzNL2DPoint</param>
/// @return <20> ɹ<EFBFBD> <C9B9> <EFBFBD> <EFBFBD> <EFBFBD> 0<EFBFBD> <30> ʧ<EFBFBD> ܷ<EFBFBD> <DCB7> ش<EFBFBD> <D8B4> <EFBFBD> <EFBFBD> 롣
VZNLAPI int VzNL_GetCounterLaser2DResult ( VZNLHANDLE hDevice , SVzNL2DPosition * p2DPoint , int * pnCount ) ;
/// @brief
/// <20> <> ȡ<EFBFBD> <C8A1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 3D<33> <44> <EFBFBD> <EFBFBD>
/// <param name = "hDevice">[in]<5D> 豸<EFBFBD> <E8B1B8> <EFBFBD> <EFBFBD> </param>
/// <param name = "p3DPoint">[out]3D<33> 㣬<EFBFBD> ڴ<EFBFBD> <DAB4> ռ <EFBFBD> <D5BC> <EFBFBD> <EFBFBD> û<EFBFBD> <C3BB> <EFBFBD> <EFBFBD> <EFBFBD> </param>
/// <param name = "pnCount">[in/out]<5D> <> <EFBFBD> <EFBFBD> :<3A> û<EFBFBD> <C3BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> SVzNL3DPosition<6F> Ľṹ<C4BD> <E1B9B9> <EFBFBD> <EFBFBD> ;<3B> <> <EFBFBD> <EFBFBD> :<3A> û<EFBFBD> <C3BB> <EFBFBD> Ҫ<EFBFBD> <D2AA> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ٸ<EFBFBD> SVzNL3DPosition</param>
/// @return <20> ɹ<EFBFBD> <C9B9> <EFBFBD> <EFBFBD> <EFBFBD> 0<EFBFBD> <30> ʧ<EFBFBD> ܷ<EFBFBD> <DCB7> ش<EFBFBD> <D8B4> <EFBFBD> <EFBFBD> 롣
VZNLAPI int VzNL_GetCounterLaser3DResult ( VZNLHANDLE hDevice , SVzNL3DPosition * p3DPoint , int * pnCount ) ;
/// @brief
/// <20> <> <EFBFBD> ô<EFBFBD> <C3B4> ʹ <EFBFBD> <CDB4> ٶ<EFBFBD> ֵ
VZNLAPI int VzNL_ConfigCounterRunSpeedValue ( VZNLHANDLE hDevice , double dSpeed ) ;
/// @brief
/// <20> <> ʼ <EFBFBD> <CABC> <EFBFBD> <EFBFBD>
VZNLAPI int VzNL_CounterStartFromLaser ( VZNLHANDLE hDevice , EVzObjRunDirect eRunDirect , VzNL_GetCounterResultCB pCB , void * pCBParam ) ;
/// @brief
/// <20> <> <EFBFBD> <EFBFBD> ɨ<EFBFBD> 裬<EFBFBD> <E8A3AC> ʼ <EFBFBD> <CABC> <EFBFBD> <EFBFBD>
/// <param name = "hDevice">[in]<5D> 豸<EFBFBD> <E8B1B8> <EFBFBD> <EFBFBD> </param>
VZNLAPI int VzNL_CounterStopLaserGetRes ( VZNLHANDLE hDevice , SVzNLCounter * * ppCounterRes ) ;
/// @brief
/// <20> <> <EFBFBD> øֽ<C3B8> <D6BD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
/// <param name = "hDevice">[in]<5D> 豸<EFBFBD> <E8B1B8> <EFBFBD> <EFBFBD> </param>
VZNLAPI int VzNL_CounterConfigDetectRange ( VZNLHANDLE hDevice , unsigned int nFrontDis , unsigned int nBackDis ) ;
/// @brief
/// <20> <> <EFBFBD> <EFBFBD> Mark<72> <6B> С width<74> <68> heighΪ0 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
/// <param name = "hDevice">[in]<5D> 豸<EFBFBD> <E8B1B8> <EFBFBD> <EFBFBD> </param>
VZNLAPI int VzNL_CounterConfigMarkSize ( VZNLHANDLE hDevice , const SVzNLSize sSize ) ;
/// @brief
/// <20> <> <EFBFBD> <EFBFBD> Counter
VZNLAPI void VzNL_ReleaseCounterRes ( SVzNLCounter * * ppCounterRes ) ;
/// @brief
/// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
/// <param name = "hDevice">[in]<5D> 豸<EFBFBD> <E8B1B8> <EFBFBD> <EFBFBD> </param>
VZNLAPI void VzNL_EndDetectCounter ( VZNLHANDLE hDevice ) ;
2025-07-23 01:35:14 +08:00
# endif //__VIZUM_DETECTED_COUNTER_HEADER__