///////////////////////////////////////////////////////////////////////// /// @file nvCFPDDTDI.h /// @brief 此文件提供探测器SDK DTDI功能的接口函数,接口函数需要配合SDK的标准函数进行使用,不可独立使用 /// @version V1.0.0.0 /// @author Liliudan /// @date 2020-06-30 /// @par Copyright (c): Sensview Technology 成都善思微科技有限公司 ///////////////////////////////////////////////////////////////////////// #ifndef NV_DTDI_H #define NV_DTDI_H #ifdef NVDTDI_EXPORTS #define NVDTDI_API __declspec(dllexport) #else #define NVDTDI_API __declspec(dllimport) #endif #include "nvDTDITypes.h" #ifdef __cplusplus extern "C" { #endif ///////////////////////////////////////////////////////////////////////// /// @brief 创建一个DTDI转换器 /// @param [in out] HDTDICONV 创建成功后返回的转换器句柄 /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS /// @note 该函数用户创建一个DTDI转换器,当转换器不再使用时必须调用 @c NV_DTDI_DestroyConventer() /// @sa @c NV_DTDI_DestroyConventer() ///////////////////////////////////////////////////////////////////////// NVDTDI_API NV_StatusType NV_DTDI_CreateConverter(HDTDICONV * hConv); ///////////////////////////////////////////////////////////////////////// /// @brief 销毁一个DTDI转换器 /// @param [in] hConv 转换器句柄 /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS /// @sa @c NV_DTDI_CreateConventer() ///////////////////////////////////////////////////////////////////////// NVDTDI_API NV_StatusType NV_DTDI_DestroyConverter(HDTDICONV hConv); ///////////////////////////////////////////////////////////////////////// /// @brief 设置DTDI转换器物体运动方向 /// @param [in] hConv 转换器句柄 /// @param [in] eMotionDirection 待扫描物体运动方向 /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS ///////////////////////////////////////////////////////////////////////// NVDTDI_API NV_StatusType NV_DTDI_SetMotionDirection(HDTDICONV hConv, NV_DTDIMotionDirection eMotionDirection); ///////////////////////////////////////////////////////////////////////// /// @brief 获取DTDI转换器物体运动方向 /// @param [in] hConv 转换器句柄 /// @param [in] eMotionDirection 待扫描物体运动方向存储空间指针 /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS ///////////////////////////////////////////////////////////////////////// NVDTDI_API NV_StatusType NV_DTDI_GetMotionDirection(HDTDICONV hConv, NV_DTDIMotionDirection * eMotionDirection); ///////////////////////////////////////////////////////////////////////// /// @brief 设置DTDI转换器工作模式 /// @param [in] hConv 转换器句柄 /// @param [in] eWorkMode 工作模式 /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS ///////////////////////////////////////////////////////////////////////// NVDTDI_API NV_StatusType NV_DTDI_SetWorkMode(HDTDICONV hConv, NV_DTDIWorkMode eWorkMode); ///////////////////////////////////////////////////////////////////////// /// @brief 获取DTDI转换器工作模式 /// @param [in] hConv 转换器句柄 /// @param [in] eWorkMode 工作模式指针 /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS ///////////////////////////////////////////////////////////////////////// NVDTDI_API NV_StatusType NV_DTDI_GetWorkMode(HDTDICONV hConv, NV_DTDIWorkMode * eWorkMode); ///////////////////////////////////////////////////////////////////////// /// @brief 设置DTDI转换器图像模式 /// @param [in] hConv 转换器句柄 /// @param [in] eWorkMode 图像模式 /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS ///////////////////////////////////////////////////////////////////////// NVDTDI_API NV_StatusType NV_DTDI_SetImageMode(HDTDICONV hConv, NV_DTDIImageMode eImageMode); ///////////////////////////////////////////////////////////////////////// /// @brief 获取DTDI转换器图像模式 /// @param [in] hConv 转换器句柄 /// @param [out] eWorkMode 图像模式 /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS ///////////////////////////////////////////////////////////////////////// NVDTDI_API NV_StatusType NV_DTDI_GetImageMode(HDTDICONV hConv, NV_DTDIImageMode * eImageMode); ///////////////////////////////////////////////////////////////////////// /// @brief 设置每次触发移动的步长,单位mm /// @param [in] hConv 转换器句柄 /// @param [in] fStepmm 每次触发移动步长单位mm /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS ///////////////////////////////////////////////////////////////////////// NVDTDI_API NV_StatusType NV_DTDI_SetMotionStep(HDTDICONV hConv, float fStepmm); ///////////////////////////////////////////////////////////////////////// /// @brief 获取每次触发移动的步长,单位mm /// @param [in] hConv 转换器句柄 /// @param [in] fStepmm 每次触发移动步长缓冲区指针 /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS ///////////////////////////////////////////////////////////////////////// NVDTDI_API NV_StatusType NV_DTDI_GetMotionStep(HDTDICONV hConv, float * fStepmm); ///////////////////////////////////////////////////////////////////////// /// @brief 设置期待的拼接图像尺寸 /// @param [in] hConv 转换器句柄 /// @param [in] iSize 期待的拼接图像尺寸 /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS /// @note 该函数仅适用于连续模式,图像拼接大小描述的方向与探测器扫描方向一致 ///////////////////////////////////////////////////////////////////////// NVDTDI_API NV_StatusType NV_DTDI_SetExpectCombineSize(HDTDICONV hConv, int iSize); ///////////////////////////////////////////////////////////////////////// /// @brief 获取期待的拼接图像尺寸 /// @param [in] hConv 转换器句柄 /// @param [in] iSize 期待的拼接图像尺寸缓冲区指针 /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS /// @note 该函数仅适用于连续模式,图像拼接大小描述的方向与探测器扫描方向一致 ///////////////////////////////////////////////////////////////////////// NVDTDI_API NV_StatusType NV_DTDI_GetExpectCombineSize(HDTDICONV hConv, int * iSize); ///////////////////////////////////////////////////////////////////////// /// @brief 设置DTDI转换器回调函数及调用对象 /// @param [in] hConv 转换器句柄 /// @param [in] pCallback 回调函数指针 /// @param [in] pCallbackData 回调函数调用对象 /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS ///////////////////////////////////////////////////////////////////////// NVDTDI_API NV_StatusType NV_DTDI_SetDTDIConvCallback(HDTDICONV hConv, NV_DTDI_EVENT_CALLBACK pCallback, void * pCallbackData); ///////////////////////////////////////////////////////////////////////// /// @brief 开始进行DTDI转换 /// @param [in] hConv 转换器句柄 /// @param [in] pMode 每次触发移动步长单位mm /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS ///////////////////////////////////////////////////////////////////////// NVDTDI_API NV_StatusType NV_DTDI_ConvertStart(HDTDICONV hConv); ///////////////////////////////////////////////////////////////////////// /// @brief 停止进行DTDI转换 /// @param [in] hConv 转换器句柄 /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS ///////////////////////////////////////////////////////////////////////// NVDTDI_API NV_StatusType NV_DTDI_ConvertStop(HDTDICONV hConv); ///////////////////////////////////////////////////////////////////////// /// @brief 输入原始图像数据 /// @param [in] hConv 转换器句柄 /// @param [in] pImg 图像数据指针 /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS ///////////////////////////////////////////////////////////////////////// NVDTDI_API NV_StatusType NV_DTDI_InputRawData(HDTDICONV hConv, const _NV_ImageInfo * pImg); ///////////////////////////////////////////////////////////////////////// /// @brief 开始FPN校准 /// @param [in] hConv 转换器句柄 /// @param [in] pCallback 回调函数指针 /// @param [in] pCallbackData 函数调用对象 /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS ///////////////////////////////////////////////////////////////////////// NVDTDI_API NV_StatusType NV_DTDI_RunFPNCalThread(HDTDICONV hConv); ///////////////////////////////////////////////////////////////////////// /// @brief 取消FPN校准 /// @param [in] hConv 转换器句柄 /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS ///////////////////////////////////////////////////////////////////////// NVDTDI_API NV_StatusType NV_DTDI_CancelFPNCal(HDTDICONV hConv); ///////////////////////////////////////////////////////////////////////// /// @brief 设置FPN校正使能 /// @param [in] hConv 转换器句柄 /// @param [in] type 校正类型 /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS ///////////////////////////////////////////////////////////////////////// NVDTDI_API NV_StatusType NV_DTDI_SetFPNCal(HDTDICONV hConv, _NV_CorrType type); ///////////////////////////////////////////////////////////////////////// /// @brief 获取FPN校正使能 /// @param [in] hConv 转换器句柄 /// @param [in] type 校正类型 /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS ///////////////////////////////////////////////////////////////////////// NVDTDI_API NV_StatusType NV_DTDI_GetFPNCal(HDTDICONV hConv, _NV_CorrType * type); #ifdef __cplusplus } #endif #endif