GrabBag/SDK/Device/VzNLSDK/Inc/VZNL_DetectCircleMark.h

92 lines
2.9 KiB
C
Raw Normal View History

2026-03-17 22:27:58 +08:00
/*
* Date: 2019/0/28
*/
#ifndef __VIZUM_DETECTED_CIRCLEMARK_HEADER__
#define __VIZUM_DETECTED_CIRCLEMARK_HEADER__
#include "VZNL_Export.h"
#include "VZNL_Types.h"
/**
* @brief 获取自动检测结果
* @param [out] pMarkPos Mark点信息
* @param [out] nCount Mark点个数
* @param [out] pParam 回调传入参数
*/
typedef void(*VzNL_GetAutoDetectMarkResultCB)(SVzCircleMarkPosInfo* pMarkPos, int nCount, void* pParam);
/**
* @brief 开始圆形Mark检测
* @param [in] hDevice 设备句柄
* @param [in] bPointMark Mark点个数VzTrue为点Mark,VzFalse为面Mark
* @return 返回0为正确,失败返回错误码
*/
VZNLAPI int VzNL_BeginDetectCircleMark(VZNLHANDLE hDevice, VzBool bPointMark);
/**
* @brief 设置Mark的点
* @param [in] hDevice 设备句柄
* @param [in] nDiameter 要检测的Mark点的直径
* @return 返回0为正确,失败返回错误码
*/
VZNLAPI int VzNL_SetCircleMarkDiameter(VZNLHANDLE hDevice, int nDiameter);
/**
* @brief 设置Mark的饱和门限值
* @param [in] hDevice 设备句柄
* @param [in] nSatureate 饱和门限值
* @return 返回0为正确,失败返回错误码
*/
VZNLAPI int VzNL_SetCircleMarkSatureate(VZNLHANDLE hDevice, int nSatureate);
VZNLAPI int VzNL_GetCircleMarkSatureate(VZNLHANDLE hDevice, int* pnErrorCode);
/**
* @brief 圆形Mark检测
* @param [in] hDevice 设备句柄
* @return 返回0为正确,失败返回错误码
*/
VZNLAPI int VzNL_DetectCircleMark(VZNLHANDLE hDevice);
/**
* @brief 获取圆形Mark线结果点的个数
* @param [in] hDevice 设备句柄
* @return 点的个数
*/
VZNLAPI int VzNL_GetCircleMarkResultPointCount(VZNLHANDLE hDevice);
/**
* @brief 获取圆形Mark线3D结果
* @param [in] hDevice 设备句柄
* @param [out] p3DPoint 3D点,内存空间由用户分配
* @param [in/out] pnCount 传入:用户分配的SVzCircleMarkPosInfo的结构个数;传出:用户需要分配多少个SVzCircleMarkPosInfo
* @return 返回0为正确,失败返回错误码
*/
VZNLAPI int VzNL_GetCircleMark3DResult(VZNLHANDLE hDevice, SVzCircleMarkPosInfo* pMarkPos, int* pnCount);
/**
* @brief 启动自动检测,并且返回圆形Mark线
* @param [in] hDevice 设备句柄
* @param [in] pCB 自动检测数据回调函数
* @param [in] pCBParam 回调函数返回参数
* @return 返回0为正确,失败返回错误码
*/
VZNLAPI int VzNL_StartAutoDetectCircleMark(VZNLHANDLE hDevice, VzNL_GetAutoDetectMarkResultCB pCB, void* pCBParam);
/**
* @brief 停止自动检测
* @param [in] hDevice 设备句柄
* @return 返回0为正确,失败返回错误码
*/
VZNLAPI int VzNL_StopAutoDetectCircleMark(VZNLHANDLE hDevice);
/**
* @brief 结束圆形Mark检测
* @param [in] hDevice 设备句柄
* @return 返回0为正确,失败返回错误码
*/
VZNLAPI void VzNL_EndDetectCircleMark(VZNLHANDLE hDevice);
#endif //__VIZUM_DETECTED_LASER_HEADER__