2026-03-17 22:27:58 +08:00
/*
* Header : VZNL_Graphics . h
* Description : <EFBFBD> <EFBFBD> ǰ <EFBFBD> ļ <EFBFBD> Ϊ ΰ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ( Vizum ) <EFBFBD> <EFBFBD> <EFBFBD> з <EFBFBD> <EFBFBD> <EFBFBD> EyeCB <EFBFBD> <EFBFBD> <EFBFBD> ṩ <EFBFBD> <EFBFBD> <EFBFBD> ⺯ <EFBFBD> <EFBFBD> <EFBFBD> ӿ ڡ <EFBFBD>
*
* Sample :
* VzNL_BeginDetectLaser ( ) ;
*
* VzNL_SetLaserStandard ( ) ;
*
* VzNL_EndDetectLaser ( ) ;
* Author : Mjw
* Date : 2018 / 08 / 28
*/
# ifndef __VIZUM_DETECTED_GANGUE_HEADER__
# define __VIZUM_DETECTED_GANGUE_HEADER__
# include "VZNL_Export.h"
# include "VZNL_Types.h"
/**
* @ brief <EFBFBD> <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> ȷ
* @ 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_BeginDetectGangue ( VZNLHANDLE hDevice ) ;
/**
* @ brief <EFBFBD> <EFBFBD> <EFBFBD> ü <EFBFBD> <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 : 0 ~ 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_SetGangueThres ( VZNLHANDLE hDevice , int nLaserThres ) ;
VZNLAPI int VzNL_GetGangueThres ( VZNLHANDLE hDevice , int * pnLaserThres ) ;
/**
* @ brief <EFBFBD> <EFBFBD> <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_DetectGangue ( VZNLHANDLE hDevice , int nPointInterval ) ;
/**
* @ 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 ] nPointInterval <EFBFBD> <EFBFBD> <EFBFBD> ļ <EFBFBD> <EFBFBD> <EFBFBD>
* @ return <EFBFBD> <EFBFBD> <EFBFBD> ص <EFBFBD> <EFBFBD> ĸ <EFBFBD> <EFBFBD> <EFBFBD>
*/
VZNLAPI int VzNL_GetGangueResultPointCount ( 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_GetGangue2DResult ( 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_GetGangue3DResult ( 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_GetGangueImageResult ( VZNLHANDLE hDevice , SVzNLImageData * * ppLeftImageData , SVzNLImageData * * ppRightImageData ) ;
/**
* @ brief <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ǹ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ param [ in ] nCount <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_SetGangueDetectParam ( VZNLHANDLE hDevice , const SVzDetectGangueParam * psParam ) ;
VZNLAPI int VzNL_GetGangueDetectParam ( VZNLHANDLE hDevice , SVzDetectGangueParam * psParam ) ;
/**
* @ brief <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_CalibrationGangue ( VZNLHANDLE hDevice ) ;
/**
* @ brief <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> PLC <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ param [ in ] szPLCIP <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_SetGanguePLCNetwork ( VZNLHANDLE hDevice , char szPLCIP [ VZNL_SDK_NETWORK_IPv4_LENGTH ] ) ;
VZNLAPI int VzNL_GetGanguePLCNetwork ( VZNLHANDLE hDevice , char szPLCIP [ VZNL_SDK_NETWORK_IPv4_LENGTH ] ) ;
/**
* @ brief <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ǹ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ param [ in ] nPointInterval <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_SetGanguePointInterval ( VZNLHANDLE hDevice , int nPointInterval ) ;
VZNLAPI int VzNL_GetGanguePointInterval ( VZNLHANDLE hDevice , int * pnPointInterval ) ;
/**
* @ brief <EFBFBD> <EFBFBD> <EFBFBD> ô <EFBFBD> <EFBFBD> ʹ <EFBFBD> <EFBFBD> ٶ <EFBFBD>
* @ param [ in ] dSpeed <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_SetGangueConveyorBeltSpeed ( VZNLHANDLE hDevice , double dSpeed ) ;
VZNLAPI int VzNL_GetGangueConveyorBeltSpeed ( VZNLHANDLE hDevice , double * pdSpeed ) ;
/**
* @ brief <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> / <EFBFBD> <EFBFBD> <EFBFBD> õ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ param [ in ] bEnable <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_EnableGangueFilterBaseHeight ( VZNLHANDLE hDevice , VzBool bEnable ) ;
VZNLAPI VzBool VzNL_IsEnableGangueFilterBaseHeight ( VZNLHANDLE hDevice , int * pnErrorCode ) ;
// @brief
// <20> <> ȡ<EFBFBD> <C8A1> <EFBFBD> <EFBFBD>
VZNLAPI int VzNL_GetGangueObjResult ( VZNLHANDLE hDevice , SVzGangueObjectResult * pResult , int * pnCount ) ;
/// @brief
/// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> Զ<EFBFBD> <D4B6> <EFBFBD> <EFBFBD> ⣬<EFBFBD> <E2A3AC> <EFBFBD> ҷ<EFBFBD> <D2B7> ؼ<EFBFBD> <D8BC> <EFBFBD> <EFBFBD> <EFBFBD>
/// <param name = "hDevice">[in]<5D> 豸<EFBFBD> <E8B1B8> <EFBFBD> <EFBFBD> </param>
/// <param name = "eFlipType">[in]<5D> <> <EFBFBD> <EFBFBD> <EFBFBD> ߷<EFBFBD> <DFB7> <EFBFBD> ,keFlipType_Vertical<61> <6C> ֱ<EFBFBD> <D6B1> ת</param>
/// <param name = "pCB">[in]<5D> ص<EFBFBD> <D8B5> <EFBFBD> <EFBFBD> <EFBFBD> </param>
/// <param name = "pCBParam">[in]<5D> ص<EFBFBD> <D8B5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> </param>
VZNLAPI int VzNL_StartAutoDetectGangue ( VZNLHANDLE hDevice , EVzFlipType eFlipType , VzNL_GetAutoDetectResultCB pCB , void * pCBParam ) ;
VZNLAPI int VzNL_StopAutoDetectGangue ( VZNLHANDLE hDevice ) ;
/**
* @ brief <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ param [ in ] hDevice <EFBFBD> 豸 <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ return <EFBFBD> <EFBFBD> <EFBFBD> ص <EFBFBD> <EFBFBD> ĸ <EFBFBD> <EFBFBD> <EFBFBD>
*/
VZNLAPI void VzNL_EndDetectGangue ( VZNLHANDLE hDevice ) ;
# endif //__VIZUM_DETECTED_GANGUE_HEADER__