/* * 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__