nvCFPDDTDI.h 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. /////////////////////////////////////////////////////////////////////////
  2. /// @file nvCFPDDTDI.h
  3. /// @brief 此文件提供探测器SDK DTDI功能的接口函数,接口函数需要配合SDK的标准函数进行使用,不可独立使用
  4. /// @version V1.0.0.0
  5. /// @author Liliudan
  6. /// @date 2020-06-30
  7. /// @par Copyright (c): Sensview Technology 成都善思微科技有限公司
  8. /////////////////////////////////////////////////////////////////////////
  9. #ifndef NV_DTDI_H
  10. #define NV_DTDI_H
  11. #ifdef NVDTDI_EXPORTS
  12. #define NVDTDI_API __declspec(dllexport)
  13. #else
  14. #define NVDTDI_API __declspec(dllimport)
  15. #endif
  16. #include "nvDTDITypes.h"
  17. #ifdef __cplusplus
  18. extern "C" {
  19. #endif
  20. /////////////////////////////////////////////////////////////////////////
  21. /// @brief 创建一个DTDI转换器
  22. /// @param [in out] HDTDICONV 创建成功后返回的转换器句柄
  23. /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS
  24. /// @note 该函数用户创建一个DTDI转换器,当转换器不再使用时必须调用 @c NV_DTDI_DestroyConventer()
  25. /// @sa @c NV_DTDI_DestroyConventer()
  26. /////////////////////////////////////////////////////////////////////////
  27. NVDTDI_API NV_StatusType NV_DTDI_CreateConverter(HDTDICONV * hConv);
  28. /////////////////////////////////////////////////////////////////////////
  29. /// @brief 销毁一个DTDI转换器
  30. /// @param [in] hConv 转换器句柄
  31. /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS
  32. /// @sa @c NV_DTDI_CreateConventer()
  33. /////////////////////////////////////////////////////////////////////////
  34. NVDTDI_API NV_StatusType NV_DTDI_DestroyConverter(HDTDICONV hConv);
  35. /////////////////////////////////////////////////////////////////////////
  36. /// @brief 设置DTDI转换器物体运动方向
  37. /// @param [in] hConv 转换器句柄
  38. /// @param [in] eMotionDirection 待扫描物体运动方向
  39. /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS
  40. /////////////////////////////////////////////////////////////////////////
  41. NVDTDI_API NV_StatusType NV_DTDI_SetMotionDirection(HDTDICONV hConv, NV_DTDIMotionDirection eMotionDirection);
  42. /////////////////////////////////////////////////////////////////////////
  43. /// @brief 获取DTDI转换器物体运动方向
  44. /// @param [in] hConv 转换器句柄
  45. /// @param [in] eMotionDirection 待扫描物体运动方向存储空间指针
  46. /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS
  47. /////////////////////////////////////////////////////////////////////////
  48. NVDTDI_API NV_StatusType NV_DTDI_GetMotionDirection(HDTDICONV hConv, NV_DTDIMotionDirection * eMotionDirection);
  49. /////////////////////////////////////////////////////////////////////////
  50. /// @brief 设置DTDI转换器工作模式
  51. /// @param [in] hConv 转换器句柄
  52. /// @param [in] eWorkMode 工作模式
  53. /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS
  54. /////////////////////////////////////////////////////////////////////////
  55. NVDTDI_API NV_StatusType NV_DTDI_SetWorkMode(HDTDICONV hConv, NV_DTDIWorkMode eWorkMode);
  56. /////////////////////////////////////////////////////////////////////////
  57. /// @brief 获取DTDI转换器工作模式
  58. /// @param [in] hConv 转换器句柄
  59. /// @param [in] eWorkMode 工作模式指针
  60. /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS
  61. /////////////////////////////////////////////////////////////////////////
  62. NVDTDI_API NV_StatusType NV_DTDI_GetWorkMode(HDTDICONV hConv, NV_DTDIWorkMode * eWorkMode);
  63. /////////////////////////////////////////////////////////////////////////
  64. /// @brief 设置DTDI转换器图像模式
  65. /// @param [in] hConv 转换器句柄
  66. /// @param [in] eWorkMode 图像模式
  67. /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS
  68. /////////////////////////////////////////////////////////////////////////
  69. NVDTDI_API NV_StatusType NV_DTDI_SetImageMode(HDTDICONV hConv, NV_DTDIImageMode eImageMode);
  70. /////////////////////////////////////////////////////////////////////////
  71. /// @brief 获取DTDI转换器图像模式
  72. /// @param [in] hConv 转换器句柄
  73. /// @param [out] eWorkMode 图像模式
  74. /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS
  75. /////////////////////////////////////////////////////////////////////////
  76. NVDTDI_API NV_StatusType NV_DTDI_GetImageMode(HDTDICONV hConv, NV_DTDIImageMode * eImageMode);
  77. /////////////////////////////////////////////////////////////////////////
  78. /// @brief 设置每次触发移动的步长,单位mm
  79. /// @param [in] hConv 转换器句柄
  80. /// @param [in] fStepmm 每次触发移动步长单位mm
  81. /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS
  82. /////////////////////////////////////////////////////////////////////////
  83. NVDTDI_API NV_StatusType NV_DTDI_SetMotionStep(HDTDICONV hConv, float fStepmm);
  84. /////////////////////////////////////////////////////////////////////////
  85. /// @brief 获取每次触发移动的步长,单位mm
  86. /// @param [in] hConv 转换器句柄
  87. /// @param [in] fStepmm 每次触发移动步长缓冲区指针
  88. /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS
  89. /////////////////////////////////////////////////////////////////////////
  90. NVDTDI_API NV_StatusType NV_DTDI_GetMotionStep(HDTDICONV hConv, float * fStepmm);
  91. /////////////////////////////////////////////////////////////////////////
  92. /// @brief 设置期待的拼接图像尺寸
  93. /// @param [in] hConv 转换器句柄
  94. /// @param [in] iSize 期待的拼接图像尺寸
  95. /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS
  96. /// @note 该函数仅适用于连续模式,图像拼接大小描述的方向与探测器扫描方向一致
  97. /////////////////////////////////////////////////////////////////////////
  98. NVDTDI_API NV_StatusType NV_DTDI_SetExpectCombineSize(HDTDICONV hConv, int iSize);
  99. /////////////////////////////////////////////////////////////////////////
  100. /// @brief 获取期待的拼接图像尺寸
  101. /// @param [in] hConv 转换器句柄
  102. /// @param [in] iSize 期待的拼接图像尺寸缓冲区指针
  103. /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS
  104. /// @note 该函数仅适用于连续模式,图像拼接大小描述的方向与探测器扫描方向一致
  105. /////////////////////////////////////////////////////////////////////////
  106. NVDTDI_API NV_StatusType NV_DTDI_GetExpectCombineSize(HDTDICONV hConv, int * iSize);
  107. /////////////////////////////////////////////////////////////////////////
  108. /// @brief 设置DTDI转换器回调函数及调用对象
  109. /// @param [in] hConv 转换器句柄
  110. /// @param [in] pCallback 回调函数指针
  111. /// @param [in] pCallbackData 回调函数调用对象
  112. /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS
  113. /////////////////////////////////////////////////////////////////////////
  114. NVDTDI_API NV_StatusType NV_DTDI_SetDTDIConvCallback(HDTDICONV hConv, NV_DTDI_EVENT_CALLBACK pCallback, void * pCallbackData);
  115. /////////////////////////////////////////////////////////////////////////
  116. /// @brief 开始进行DTDI转换
  117. /// @param [in] hConv 转换器句柄
  118. /// @param [in] pMode 每次触发移动步长单位mm
  119. /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS
  120. /////////////////////////////////////////////////////////////////////////
  121. NVDTDI_API NV_StatusType NV_DTDI_ConvertStart(HDTDICONV hConv);
  122. /////////////////////////////////////////////////////////////////////////
  123. /// @brief 停止进行DTDI转换
  124. /// @param [in] hConv 转换器句柄
  125. /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS
  126. /////////////////////////////////////////////////////////////////////////
  127. NVDTDI_API NV_StatusType NV_DTDI_ConvertStop(HDTDICONV hConv);
  128. /////////////////////////////////////////////////////////////////////////
  129. /// @brief 输入原始图像数据
  130. /// @param [in] hConv 转换器句柄
  131. /// @param [in] pImg 图像数据指针
  132. /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS
  133. /////////////////////////////////////////////////////////////////////////
  134. NVDTDI_API NV_StatusType NV_DTDI_InputRawData(HDTDICONV hConv, const _NV_ImageInfo * pImg);
  135. /////////////////////////////////////////////////////////////////////////
  136. /// @brief 开始FPN校准
  137. /// @param [in] hConv 转换器句柄
  138. /// @param [in] pCallback 回调函数指针
  139. /// @param [in] pCallbackData 函数调用对象
  140. /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS
  141. /////////////////////////////////////////////////////////////////////////
  142. NVDTDI_API NV_StatusType NV_DTDI_RunFPNCalThread(HDTDICONV hConv);
  143. /////////////////////////////////////////////////////////////////////////
  144. /// @brief 取消FPN校准
  145. /// @param [in] hConv 转换器句柄
  146. /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS
  147. /////////////////////////////////////////////////////////////////////////
  148. NVDTDI_API NV_StatusType NV_DTDI_CancelFPNCal(HDTDICONV hConv);
  149. /////////////////////////////////////////////////////////////////////////
  150. /// @brief 设置FPN校正使能
  151. /// @param [in] hConv 转换器句柄
  152. /// @param [in] type 校正类型
  153. /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS
  154. /////////////////////////////////////////////////////////////////////////
  155. NVDTDI_API NV_StatusType NV_DTDI_SetFPNCal(HDTDICONV hConv, _NV_CorrType type);
  156. /////////////////////////////////////////////////////////////////////////
  157. /// @brief 获取FPN校正使能
  158. /// @param [in] hConv 转换器句柄
  159. /// @param [in] type 校正类型
  160. /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS
  161. /////////////////////////////////////////////////////////////////////////
  162. NVDTDI_API NV_StatusType NV_DTDI_GetFPNCal(HDTDICONV hConv, _NV_CorrType * type);
  163. #ifdef __cplusplus
  164. }
  165. #endif
  166. #endif