158 lines
5.2 KiB
C
158 lines
5.2 KiB
C
/*
|
||
* 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结果
|
||
/// <param name = "hDevice">[in]设备句柄</param>
|
||
/// <param name = "p2DPoint">[out]2D点,内存空间由用户分配</param>
|
||
/// <param name = "pnCount">[in/out]传入:用户分配的SVzNL2DPoint的结构个数;传出:用户需要分配多少个SVzNL2DPoint</param>
|
||
/// @return 成功返回0,失败返回错误码。
|
||
VZNLAPI int VzNL_GetGangue2DResult(VZNLHANDLE hDevice, SVzNL2DPosition* p2DPoint, int* pnCount);
|
||
|
||
/// @brief
|
||
/// 获取激光线3D结果
|
||
/// <param name = "hDevice">[in]设备句柄</param>
|
||
/// <param name = "p3DPoint">[out]3D点,内存空间由用户分配</param>
|
||
/// <param name = "pnCount">[in/out]传入:用户分配的SVzNL3DPosition的结构个数;传出:用户需要分配多少个SVzNL3DPosition</param>
|
||
/// @return 成功返回0,失败返回错误码。
|
||
VZNLAPI int VzNL_GetGangue3DResult(VZNLHANDLE hDevice, SVzNL3DPosition* p3DPoint, int* pnCount);
|
||
|
||
/// @brief
|
||
/// 获取结果图像
|
||
/// <param name = "hDevice">[in]设备句柄</param>
|
||
/// <param name = "ppIImageData">[in]图像数据</param>
|
||
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
|
||
/// 启动自动检测,并且返回激光线
|
||
/// <param name = "hDevice">[in]设备句柄</param>
|
||
/// <param name = "eFlipType">[in]激光线方向,keFlipType_Vertical垂直翻转</param>
|
||
/// <param name = "pCB">[in]回调函数</param>
|
||
/// <param name = "pCBParam">[in]回调函数参数</param>
|
||
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__
|