2026-03-17 22:27:58 +08:00
# ifndef __VIZUM_DETECTED_GRAINS_HEADER__
# define __VIZUM_DETECTED_GRAINS_HEADER__
# include "VZNL_Export.h"
# include "VZNL_Types.h"
/// @brief
/// <20> <> ȡ<EFBFBD> Զ<EFBFBD> <D4B6> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
/// <param name = "pLaserResult">[in]δ<> <CEB4> <EFBFBD> <EFBFBD> <EFBFBD> ļ<EFBFBD> <C4BC> <EFBFBD> <EFBFBD> ߣ<EFBFBD> û<EFBFBD> <C3BB> ƫ<EFBFBD> ƣ<EFBFBD> </param>
/// <param name = "pProcLaserResult">[in]<5D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ļ<EFBFBD> <C4BC> <EFBFBD> <EFBFBD> <EFBFBD> </param>
/// <param name = "eStatus">[in]<5D> <> <EFBFBD> <EFBFBD> ״̬</param>
/// <param name = "pResult">[in]<5D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> </param>
/// <param name = "pParam">[in]<5D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> </param>
typedef int ( * VzNL_GetAutoDetectGrainsResultCB ) ( SVzDetectGrainsLaserResult * pLaserResult , SVzDetectGrainsLaserResult * pProcLaserResult , EVzGrainLaserStatus eStatus , SVzDetectGrainResult * pResult , 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_BeginDetectGrains ( VZNLHANDLE hDevice ) ;
/// @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_DetectGrainLaser ( VZNLHANDLE hDevice ) ;
/// @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_GetGrainLaserResultPointCount ( 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_GetGrainLaser2DResult ( 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_GetGrainLaser3DResult ( VZNLHANDLE hDevice , SVzNL3DPosition * p3DPoint , int * pnCount ) ;
/// @brief
/// <20> <> ȡ<EFBFBD> <C8A1> <EFBFBD> <EFBFBD> ͼ<EFBFBD> <CDBC>
/// <param name = "hDevice">[in]<5D> 豸<EFBFBD> <E8B1B8> <EFBFBD> <EFBFBD> </param>
/// <param name = "ppIImageData">[in]ͼ<> <CDBC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> </param>
VZNLAPI int VzNL_GetGrainImageResult ( VZNLHANDLE hDevice , SVzNLImageData * * ppLeftImageData , SVzNLImageData * * ppRightImageData ) ;
/// @brief
/// <20> <> <EFBFBD> ù<EFBFBD> <C3B9> ˸ ߶<CBB8>
/// <param name = "hDevice">[in]<5D> 豸<EFBFBD> <E8B1B8> <EFBFBD> <EFBFBD> </param>
/// <param name = "dHeight">[in]<5D> <> <EFBFBD> ˸ ߶<CBB8> </param>
/// @return <20> ɹ<EFBFBD> <C9B9> <EFBFBD> <EFBFBD> <EFBFBD> 0<EFBFBD> <30> ʧ<EFBFBD> ܷ<EFBFBD> <DCB7> ش<EFBFBD> <D8B4> <EFBFBD> <EFBFBD> 롣
VZNLAPI int VzNL_ConfigGrainsFilterHeight ( VZNLHANDLE hDevice , double dHeight ) ;
/// @brief
/// <20> <> <EFBFBD> ô<EFBFBD> <C3B4> ʹ <EFBFBD> <CDB4> ٶ<EFBFBD> ֵ
/// <param name = "hDevice">[in]<5D> 豸<EFBFBD> <E8B1B8> <EFBFBD> <EFBFBD> </param>
/// <param name = "eDirect">[in]<5D> <> <EFBFBD> з<EFBFBD> <D0B7> <EFBFBD> </param>
/// <param name = "dSpeed">[in]<5D> ٶ<EFBFBD> </param>
/// @return <20> ɹ<EFBFBD> <C9B9> <EFBFBD> <EFBFBD> <EFBFBD> 0<EFBFBD> <30> ʧ<EFBFBD> ܷ<EFBFBD> <DCB7> ش<EFBFBD> <D8B4> <EFBFBD> <EFBFBD> 롣
VZNLAPI int VzNL_ConfigGrainRunSpeed ( VZNLHANDLE hDevice , EVzObjRunDirect eDirect , double dSpeed ) ;
/// @brief
/// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ȷ<EFBFBD> ĸ<EFBFBD> <C4B8> <EFBFBD>
/// <param name = "hDevice">[in]<5D> 豸<EFBFBD> <E8B1B8> <EFBFBD> <EFBFBD> </param>
/// <param name = "nValidCount">[in]<5D> <> ȷ<EFBFBD> Ĺ<EFBFBD> <C4B9> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> </param>
/// @return <20> ɹ<EFBFBD> <C9B9> <EFBFBD> <EFBFBD> <EFBFBD> 0<EFBFBD> <30> ʧ<EFBFBD> ܷ<EFBFBD> <DCB7> ش<EFBFBD> <D8B4> <EFBFBD> <EFBFBD> 롣
VZNLAPI int VzNL_ConfigGrainValidCount ( VZNLHANDLE hDevice , unsigned int nValidCount ) ;
/// @brief
/// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ߿<EFBFBD> <DFBF> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ߵ ĸ<DFB5> <C4B8> <EFBFBD>
/// <param name = "hDevice">[in]<5D> 豸<EFBFBD> <E8B1B8> <EFBFBD> <EFBFBD> </param>
/// <param name = "nLineCount">[in]<5D> ų<EFBFBD> <C5B3> <EFBFBD> <EFBFBD> ߵ ĸ<DFB5> <C4B8> <EFBFBD> </param>
/// @return <20> ɹ<EFBFBD> <C9B9> <EFBFBD> <EFBFBD> <EFBFBD> 0<EFBFBD> <30> ʧ<EFBFBD> ܷ<EFBFBD> <DCB7> ش<EFBFBD> <D8B4> <EFBFBD> <EFBFBD> 롣
VZNLAPI int VzNL_ConfigGrainExcludeLineCount ( VZNLHANDLE hDevice , unsigned int nLineCount ) ;
/// @brief
/// <20> <> ʼ <EFBFBD> Զ<EFBFBD> <D4B6> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
/// <param name = "hDevice">[in]<5D> 豸</param>
/// <param name = "pResultCB">[in]<5D> <> <EFBFBD> <EFBFBD> <EFBFBD> ص<EFBFBD> </param>
/// <param name = "pParam">[in]<5D> ص<EFBFBD> <D8B5> <EFBFBD> <EFBFBD> <EFBFBD> </param>
/// @return <20> ɹ<EFBFBD> <C9B9> <EFBFBD> <EFBFBD> <EFBFBD> 0<EFBFBD> <30> ʧ<EFBFBD> ܷ<EFBFBD> <DCB7> ش<EFBFBD> <D8B4> <EFBFBD> <EFBFBD> 롣
VZNLAPI int VzNL_StartAutoDetectGrains ( VZNLHANDLE hDevice , EVzFlipType eFlipType , VzNL_GetAutoDetectGrainsResultCB pResultCB , void * pParam ) ;
/// @brief
/// ֹͣ<CDA3> Զ<EFBFBD> <D4B6> <EFBFBD> <EFBFBD> <EFBFBD>
/// <param name = "hDevice">[in]<5D> 豸<EFBFBD> <E8B1B8> <EFBFBD> <EFBFBD> </param>
/// @return <20> ɹ<EFBFBD> <C9B9> <EFBFBD> <EFBFBD> <EFBFBD> 0<EFBFBD> <30> ʧ<EFBFBD> ܷ<EFBFBD> <DCB7> ش<EFBFBD> <D8B4> <EFBFBD> <EFBFBD> 롣
VZNLAPI int VzNL_StopAutoDetectGrains ( VZNLHANDLE hDevice ) ;
/// @brief
/// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
/// <param name = "hDevice">[in]<5D> 豸<EFBFBD> <E8B1B8> <EFBFBD> <EFBFBD> </param>
/// @return <20> ɹ<EFBFBD> <C9B9> <EFBFBD> <EFBFBD> <EFBFBD> 0<EFBFBD> <30> ʧ<EFBFBD> ܷ<EFBFBD> <DCB7> ش<EFBFBD> <D8B4> <EFBFBD> <EFBFBD> 롣
VZNLAPI void VzNL_EndDetectGrains ( VZNLHANDLE hDevice ) ;
# endif //__VIZUM_DETECTED_GRAINS_HEADER__