/* * Header: VZNL_Graphics.h * Description:当前文件为伟景智能(Vizum)所研发的EyeCB板提供检测函数接口。 * * 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 开始激光检测 * @param [in] hDevice 设备句柄 * @return 返回0表示正确 * @retval 0 表示成功 * @retval 非0 表示失败,可以使用VzNL_GetErrorInfo获取 */ VZNLAPI int VzNL_BeginDetectGangue(VZNLHANDLE hDevice); /** * @brief 设置激光门限值 * @param [in] hDevice 设备句柄 * @param [in] nLaserThres 激光门限值[Range:0~255] * @return 返回0表示正确 * @retval 0 表示成功 * @retval 非0 表示失败,可以使用VzNL_GetErrorInfo获取 */ VZNLAPI int VzNL_SetGangueThres(VZNLHANDLE hDevice, int nLaserThres); VZNLAPI int VzNL_GetGangueThres(VZNLHANDLE hDevice, int* pnLaserThres); /** * @brief 激光检测 * @param [in] hDevice 设备句柄 * @param [in] nPointInterval 点的间隔 * @return 返回0为正确,失败返回错误码 */ VZNLAPI int VzNL_DetectGangue(VZNLHANDLE hDevice, int nPointInterval); /** * @brief 获取激光线结果点的个数 * @param [in] hDevice 设备句柄 * @param [in] nPointInterval 点的间隔 * @return 返回点的个数 */ VZNLAPI int VzNL_GetGangueResultPointCount(VZNLHANDLE hDevice); /// @brief /// 获取激光线2D结果 /// [in]设备句柄 /// [out]2D点,内存空间由用户分配 /// [in/out]传入:用户分配的SVzNL2DPoint的结构个数;传出:用户需要分配多少个SVzNL2DPoint /// @return 成功返回0,失败返回错误码。 VZNLAPI int VzNL_GetGangue2DResult(VZNLHANDLE hDevice, SVzNL2DPosition* p2DPoint, int* pnCount); /// @brief /// 获取激光线3D结果 /// [in]设备句柄 /// [out]3D点,内存空间由用户分配 /// [in/out]传入:用户分配的SVzNL3DPosition的结构个数;传出:用户需要分配多少个SVzNL3DPosition /// @return 成功返回0,失败返回错误码。 VZNLAPI int VzNL_GetGangue3DResult(VZNLHANDLE hDevice, SVzNL3DPosition* p3DPoint, int* pnCount); /// @brief /// 获取结果图像 /// [in]设备句柄 /// [in]图像数据 VZNLAPI int VzNL_GetGangueImageResult(VZNLHANDLE hDevice, SVzNLImageData** ppLeftImageData, SVzNLImageData** ppRightImageData); /** * @brief 设置气枪个数 * @param [in] nCount 气枪个数 * @return 返回0表示正确 * @retval 0 表示成功 * @retval 非0 表示失败,可以使用VzNL_GetErrorInfo获取 */ VZNLAPI int VzNL_SetGangueDetectParam(VZNLHANDLE hDevice, const SVzDetectGangueParam* psParam); VZNLAPI int VzNL_GetGangueDetectParam(VZNLHANDLE hDevice, SVzDetectGangueParam* psParam); /** * @brief 标定 * @return 返回0表示正确 * @retval 0 表示成功 * @retval 非0 表示失败,可以使用VzNL_GetErrorInfo获取 */ VZNLAPI int VzNL_CalibrationGangue(VZNLHANDLE hDevice); /** * @brief 设置PLC网络 * @param [in] szPLCIP 气枪个数 * @return 返回0表示正确 * @retval 0 表示成功 * @retval 非0 表示失败,可以使用VzNL_GetErrorInfo获取 */ 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 设置气枪个数 * @param [in] nPointInterval 点间隔 * @return 返回0表示正确 * @retval 0 表示成功 * @retval 非0 表示失败,可以使用VzNL_GetErrorInfo获取 */ VZNLAPI int VzNL_SetGanguePointInterval(VZNLHANDLE hDevice, int nPointInterval); VZNLAPI int VzNL_GetGanguePointInterval(VZNLHANDLE hDevice, int* pnPointInterval); /** * @brief 设置传送带速度 * @param [in] dSpeed 传送带速度 * @return 返回0表示正确 * @retval 0 表示成功 * @retval 非0 表示失败,可以使用VzNL_GetErrorInfo获取 */ VZNLAPI int VzNL_SetGangueConveyorBeltSpeed(VZNLHANDLE hDevice, double dSpeed); VZNLAPI int VzNL_GetGangueConveyorBeltSpeed(VZNLHANDLE hDevice, double* pdSpeed); /** * @brief 启用/禁用地面过滤 * @param [in] bEnable 启用/禁用 * @return 返回0表示正确 * @retval 0 表示成功 * @retval 非0 表示失败,可以使用VzNL_GetErrorInfo获取 */ VZNLAPI int VzNL_EnableGangueFilterBaseHeight(VZNLHANDLE hDevice, VzBool bEnable); VZNLAPI VzBool VzNL_IsEnableGangueFilterBaseHeight(VZNLHANDLE hDevice, int* pnErrorCode); // @brief // 获取结果 VZNLAPI int VzNL_GetGangueObjResult(VZNLHANDLE hDevice, SVzGangueObjectResult* pResult, int* pnCount); /// @brief /// 启动自动检测,并且返回激光线 /// [in]设备句柄 /// [in]激光线方向,keFlipType_Vertical垂直翻转 /// [in]回调函数 /// [in]回调函数参数 VZNLAPI int VzNL_StartAutoDetectGangue(VZNLHANDLE hDevice, EVzFlipType eFlipType, VzNL_GetAutoDetectResultCB pCB, void* pCBParam); VZNLAPI int VzNL_StopAutoDetectGangue(VZNLHANDLE hDevice); /** * @brief 结束激光检测 * @param [in] hDevice 设备句柄 * @return 返回点的个数 */ VZNLAPI void VzNL_EndDetectGangue(VZNLHANDLE hDevice); #endif //__VIZUM_DETECTED_GANGUE_HEADER__