#ifndef __VIZUM_DETECTED_COUNTER_HEADER__ #define __VIZUM_DETECTED_COUNTER_HEADER__ #include "VZNL_Export.h" #include "VZNL_Types.h" /** * @defgroup 钢筋计数 * @author Mjw * @version 1.0 * @date 2019.09.10 * @{ */ /// @brief /// 获取自动检测结果 typedef int(*VzNL_GetCounterResultCB)(SVzNL3DPosition* p3DPoint, SVzNL2DPosition* p2DPoint, int nCount, unsigned long long nTimeStamp, double dTotleOffset, double dStep, SVzNLImageData* pLeftImage, SVzNLImageData* pRightImage, void* pParam); /// @brief /// 开始激光检测 /// [in]设备句柄 /// @return 返回0为正确,失败返回错误码 VZNLAPI int VzNL_BeginDetectCounter(VZNLHANDLE hDevice, VzBool bCounterOrLabel); /// @brief /// 一键加速 VZNLAPI int VzNL_EnableSimpleResultMode(VZNLHANDLE hDevice, VzBool bEnableSimpleMode); /// @brief /// 激光检测- /// [in]设备句柄 /// [in]点的间隔 /// @return 返回0为正确,失败返回错误码 VZNLAPI int VzNL_DetectCounterLaser(VZNLHANDLE hDevice, int nPointInterval); /// @brief /// 获取激光线结果点的个数 /// [in]设备句柄 /// @return 点的个数 VZNLAPI int VzNL_GetCounterLaserResultPointCount(VZNLHANDLE hDevice); /// @brief /// 获取激光线2D结果 /// [in]设备句柄 /// [out]2D点,内存空间由用户分配 /// [in/out]传入:用户分配的SVzNL2DPoint的结构个数;传出:用户需要分配多少个SVzNL2DPoint /// @return 成功返回0,失败返回错误码。 VZNLAPI int VzNL_GetCounterLaser2DResult(VZNLHANDLE hDevice, SVzNL2DPosition* p2DPoint, int* pnCount); /// @brief /// 获取激光线3D结果 /// [in]设备句柄 /// [out]3D点,内存空间由用户分配 /// [in/out]传入:用户分配的SVzNL3DPosition的结构个数;传出:用户需要分配多少个SVzNL3DPosition /// @return 成功返回0,失败返回错误码。 VZNLAPI int VzNL_GetCounterLaser3DResult(VZNLHANDLE hDevice, SVzNL3DPosition* p3DPoint, int* pnCount); /// @brief /// 设置传送带速度值 VZNLAPI int VzNL_ConfigCounterRunSpeedValue(VZNLHANDLE hDevice, double dSpeed); /// @brief /// 开始计数 VZNLAPI int VzNL_CounterStartFromLaser(VZNLHANDLE hDevice, EVzObjRunDirect eRunDirect, VzNL_GetCounterResultCB pCB, void* pCBParam); /// @brief /// 结束扫描,开始结束 /// [in]设备句柄 VZNLAPI int VzNL_CounterStopLaserGetRes(VZNLHANDLE hDevice, SVzNLCounter** ppCounterRes); /// @brief /// 配置钢筋检测参数 /// [in]设备句柄 VZNLAPI int VzNL_CounterConfigDetectRange(VZNLHANDLE hDevice, unsigned int nFrontDis, unsigned int nBackDis); /// @brief /// 配置Mark大小 width或heigh为0 不检测 /// [in]设备句柄 VZNLAPI int VzNL_CounterConfigMarkSize(VZNLHANDLE hDevice, const SVzNLSize sSize); /// @brief /// 清理Counter VZNLAPI void VzNL_ReleaseCounterRes(SVzNLCounter** ppCounterRes); /// @brief /// 结束激光检测 /// [in]设备句柄 VZNLAPI void VzNL_EndDetectCounter(VZNLHANDLE hDevice); #endif //__VIZUM_DETECTED_COUNTER_HEADER__