GrabBag/SDK/VzNLSDK/Inc/VZNL_DetectDivRebar.h

141 lines
4.2 KiB
C
Raw Normal View History

2025-07-23 01:35:14 +08:00
/*
* Header: VZNL_DetectDivRebar.h
* Description:
*
* Sample:
* VzNL_BeginDetectDivRebar();
*
* VzNL_SetLaserStandard();
*
* VzNL_EndDetectDivRebar();
* Author: Mjw
* Date: 2021/02/05
*/
#ifndef __VIZUM_DETECTED_DIVREBAR_HEADER__
#define __VIZUM_DETECTED_DIVREBAR_HEADER__
#include "VZNL_Export.h"
#include "VZNL_Types.h"
/// @brief
/// <20>ָֽ<D6B8><D6BD><EFBFBD>
typedef struct
{
EVzResultDataType eDataType; //< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SVzLaserLineData* pLineData; //< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
unsigned int nLineCount; //< <20><><EFBFBD><EFBFBD>
}SVzNLDivRebarBlockData;
/// @brief
/// <20>ָּ<D6B8><D6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef void(*VzFunDivRebarResultDataCB)(SVzNLDivRebarBlockData* pDivRebarBlockData, void* pParam);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>ȷ
* @retval 0 <EFBFBD><EFBFBD>ʾ<EFBFBD>ɹ<EFBFBD>
* @retval <EFBFBD><EFBFBD>0 <EFBFBD><EFBFBD>ʾʧ<EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>VzNL_GetErrorInfo<EFBFBD><EFBFBD>ȡ
*/
VZNLAPI int VzNL_BeginDetectDivRebar(VZNLHANDLE hDevice);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>˸߶<EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] dFilterHeight <EFBFBD><EFBFBD><EFBFBD>˸߶ȣ<EFBFBD><EFBFBD>˸߶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>VzTrue
*/
VZNLAPI int VzNL_SetDivRebarFilterZRange(VZNLHANDLE hDevice, float fZMin, float fZMax);
VZNLAPI int VzNL_GetDivRebarFilterZRange(VZNLHANDLE hDevice, float* pfZMin, float* pfZMax);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>˸߶<EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] dFilterHeight <EFBFBD><EFBFBD><EFBFBD>˸߶ȣ<EFBFBD><EFBFBD>˸߶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>VzTrue
*/
VZNLAPI int VzNL_SetDivRebarFilterYRange(VZNLHANDLE hDevice, float fYMin, float fYMax);
VZNLAPI int VzNL_GetDivRebarFilterYRange(VZNLHANDLE hDevice, float* pfYMin, float* pfYMax);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD>ȡɨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] nScanDelay ɨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ
* @return <EFBFBD><EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD>ֵ
*/
VZNLAPI int VzNL_SetDivRebarScanDelay(VZNLHANDLE hDevice, unsigned int nScanDelay);
VZNLAPI int VzNL_GetDivRebarScanDelay(VZNLHANDLE hDevice, unsigned int* pnScanDelay);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߸<EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] nScanMaxLine <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD>ֵ
*/
VZNLAPI int VzNL_SetDivRebarScanMaxLine(VZNLHANDLE hDevice, unsigned int nScanMaxLine);
VZNLAPI int VzNL_GetDivRebarScanMaxLine(VZNLHANDLE hDevice, unsigned int* pnScanMaxLine);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><EFBFBD>Ƽ<EFBFBD><EFBFBD><EFBFBD>ģʽ
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] eRunMode <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
* @return <EFBFBD><EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD>ֵ
*/
VZNLAPI int VzNL_SetDivRebarRunMode(VZNLHANDLE hDevice, EVzPointCloudProcMode eCloudMode);
VZNLAPI int VzNL_GetDivRebarRunMode(VZNLHANDLE hDevice, EVzPointCloudProcMode* peCloudMode);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>ٶ<EFBFBD>ֵ
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] dSpeed <EFBFBD>ٶ<EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>VzTrue
*/
VZNLAPI int VzNL_SetDivRebarSpeed(VZNLHANDLE hDevice, double dSpeed);
VZNLAPI int VzNL_GetDivRebarSpeed(VZNLHANDLE hDevice, double* pdSpeed);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] fDistance <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (3.1415926 * <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><EFBFBD>) / <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD>ֵ
*/
VZNLAPI int VzNL_SetDivRebarEncodeDistance(VZNLHANDLE hDevice, float fDistance);
VZNLAPI int VzNL_GetDivRebarEncodeDistance(VZNLHANDLE hDevice, float* pfDistance);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] nValidMinLine <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD>ֵ
*/
VZNLAPI int VzNL_SetDivRebarValidLines(VZNLHANDLE hDevice, unsigned int nValidMinLine);
VZNLAPI int VzNL_GetDivRebarValidLines(VZNLHANDLE hDevice, unsigned int* pnValidMinLine);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] nBlockMinLines <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD>ֵ
*/
VZNLAPI int VzNL_SetDivRebarBlockMinLines(VZNLHANDLE hDevice, unsigned int nBlockMinLines);
VZNLAPI int VzNL_GetDivRebarBlockMinLines(VZNLHANDLE hDevice, unsigned int* pnBlockMinLines);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] pCB <EFBFBD>ص<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] pCBParam <EFBFBD>ص<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD>ֵ
*/
VZNLAPI int VzNL_StartDivRebarAutoDetect(VZNLHANDLE hDevice, VzFunDivRebarResultDataCB pCB, void* pCBParam);
VZNLAPI int VzNL_StopDivRebarAutoDetect(VZNLHANDLE hDevice);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param [in] hDevice <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD>
*/
VZNLAPI void VzNL_EndDetectDivRebar(VZNLHANDLE hDevice);
#endif //__VIZUM_DETECTED_DIVREBAR_HEADER__