YuYingAPI.h 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  1. #pragma once
  2. #include "YuYingDefinition.h"
  3. #ifdef YUYINGAPI_EXPORTS
  4. #define EXPORT_API_DLL _declspec(dllexport)
  5. #else
  6. #define EXPORT_API_DLL _declspec(dllimport)
  7. #endif
  8. #ifdef __cplusplus
  9. extern "C" {
  10. #endif /* __cplusplus */
  11. /*------------ 1、工作流相关函数--------------*/
  12. /**
  13. * \brief 初始化函数,必须第一个调用
  14. * \return 返回值为程序的句柄,代表一个设备,每次调用此函数都会返回一个新的句柄,
  15. * 用户保存此句柄,在不用时用户通过调用YI_FPD_Close主动释放
  16. */
  17. EXPORT_API_DLL int _stdcall YI_Initialize_FPD_V4(
  18. const char* ipAddressRemote,
  19. int iPortRemote,
  20. char outDeviceID[100]);
  21. /**
  22. * \brief 释放某一个设备
  23. * \param handle
  24. */
  25. EXPORT_API_DLL void _stdcall YI_FPD_Close(const char* sDeviceID);
  26. /**
  27. * \brief 设置平板探测器工作模式
  28. */
  29. EXPORT_API_DLL int _stdcall YI_FPD_Set_Work_Mode(const char* sDeviceID, FpdMode* pFpdMode);
  30. /**
  31. * \brief 停止采集
  32. * \静态平板探测器:software模式下,且在采集数量大于1时可用。
  33. * \动态平板探测器:freerun模式下可用。
  34. */
  35. EXPORT_API_DLL int _stdcall YI_FPD_Stop_Capture_Image(const char* sDeviceID);
  36. /*------------ 2、读写平板探测器配置相关的函数--------------*/
  37. EXPORT_API_DLL int _stdcall YI_FPD_Get_Configure_Common(const char* sDeviceID, YIConfigInfo_Common* configInfo);
  38. EXPORT_API_DLL int _stdcall YI_FPD_Set_Configure_Common(const char* sDeviceID, const YIConfigInfo_Common* configInfo);
  39. EXPORT_API_DLL int _stdcall YI_FPD_Get_Configure_SyncOut_Mode(const char* sDeviceID,
  40. YIConfigInfo_SyncOut* configInfo);
  41. EXPORT_API_DLL int _stdcall YI_FPD_Set_Configure_SyncOut_Mode(const char* sDeviceID,
  42. const YIConfigInfo_SyncOut* configInfo);
  43. /**
  44. * \brief 重置平板探测器参数,恢复默认值
  45. */
  46. EXPORT_API_DLL int _stdcall YI_FPD_Restore_Factory_Settings(const char* sDeviceID);
  47. /*------------ 3、图像校正相关函数--------------*/
  48. /**
  49. * \brief 设置平板探测器对图像做offset
  50. */
  51. EXPORT_API_DLL int _stdcall YI_Subtract_Offset(const char* sDeviceID, bool bValue);
  52. /*------------ 4、回调函数注册函数--------------*/
  53. /**
  54. * \brief
  55. * \param sDeviceID:设备标识
  56. * callBackFunc: 回调函数
  57. * \return
  58. */
  59. EXPORT_API_DLL int _stdcall YI_ImageReady_Callback_Register(const char* sDeviceID,
  60. ImageReadyCallbackFunc callBackFunc);
  61. /**
  62. * \brief
  63. * \param sDeviceID:设备标识
  64. * callBackFunc: 回调函数
  65. * \return
  66. */
  67. EXPORT_API_DLL int _stdcall YI_SystemInfo_Callback_Register(const char* sDeviceID,
  68. SystemInfoCallbackFunc callBackFunc);
  69. /*------------ 5、帮助函数--------------*/
  70. /**
  71. * \brief 获取当前返回图像数据的大小,客户可以根据此数值设置图像缓存大小
  72. * \param [out] 图像数据的大小,单位(字节)
  73. */
  74. EXPORT_API_DLL int _stdcall YI_Get_Callback_Image_Size(const char* sDeviceID,
  75. int& iWidth, int& iHeight, int& iBytesOfPerPixel);
  76. /**
  77. * \brief 当其他函数返回值为0时,调用此函数获取错误信息
  78. */
  79. EXPORT_API_DLL SystemErrorCode _stdcall YI_GetLastErrorCode();
  80. /**
  81. * \brief 设置是否写log文件
  82. * \param [in] 保存log文件的文件夹路径
  83. */
  84. EXPORT_API_DLL int _stdcall YI_Set_Save_Log_Flag(bool bSave, const char* sFloderPath);
  85. /**
  86. * \brief 获取玻璃无效的边缘区域
  87. */
  88. EXPORT_API_DLL int _stdcall YI_FPD_Get_Invalid_Region(const char* sDeviceID, int& iLeft, int& iTop, int& iRight, int& iBottom);
  89. /**
  90. * \brief 获取本机所有的v4 ip地址
  91. * \param iPs 使用时定义char *p=nullptr,以&p作为输入参数。
  92. * 不需要用户释放。
  93. * \ p中包含的IPV4地址用分号(;)分隔
  94. * \return ResultType::Succeed 获取地址成功
  95. * ResultType::Failed 获取地址失败
  96. */
  97. EXPORT_API_DLL int _stdcall YI_GetLoacalIPs_V4(char** iPs);
  98. /**
  99. * \brief 设置是否需要保存获取到的图像
  100. * \param bValue true 保存, false 不保存
  101. */
  102. EXPORT_API_DLL int _stdcall YI_Set_Image_Save_State(const char* sDeviceID, bool bValue);
  103. /**
  104. * \brief 设置保存图像的路径,如果需要保存图像但是没有设置路径,那么会默认保存到当前目录下
  105. */
  106. EXPORT_API_DLL int _stdcall YI_Set_Image_Save_Path(const char* sDeviceID, const char* savePath);
  107. /**
  108. * \brief 获取当前平板探测器类型
  109. * \param iType -1 未知, 0 静态, 1 千兆动态
  110. */
  111. EXPORT_API_DLL int _stdcall YI_FPD_Get_FPD_TYPE(const char* sDeviceID, int& iType);
  112. /**
  113. * \brief 将配置信息保存到ini文件,以及从ini文件读取配置信息
  114. * \param sSavePath用户需要确认路径及文件存在
  115. */
  116. EXPORT_API_DLL int _stdcall YI_FPD_Write_Configure_Common_To_File(const char* sSavePath, const YIConfigInfo_Common* configInfo);
  117. EXPORT_API_DLL int _stdcall YI_FPD_Read_Configure_Common_From_File(const char* sSavePath, YIConfigInfo_Common* configInfo);
  118. EXPORT_API_DLL int _stdcall YI_FPD_Write_Configure_SyncOut_To_File(const char* sSavePath, int iSpeedMode, const YIConfigInfo_SyncOut* configInfo);
  119. EXPORT_API_DLL int _stdcall YI_FPD_Read_Configure_SyncOut_From_File(const char* sSavePath, int iSpeedMode, YIConfigInfo_SyncOut* configInfo);
  120. /********************************************************************************************************************
  121. **********************************************静 态 探 测 器 特 有 接 口*******************************************************
  122. **********************************************************************************************************************/
  123. /*------------ 1、工作流相关函数--------------*/
  124. EXPORT_API_DLL int _stdcall YI_FPD_Capture_Image(const char* sDeviceID, int iNumber = 1);
  125. /*------------ 2、图像校正相关的函数--------------*/
  126. EXPORT_API_DLL int _stdcall YI_Load_Gain_Tmp_File(const char* sDeviceID, const char* sPath);
  127. EXPORT_API_DLL int _stdcall YI_Load_Defect_Tmp_File(const char* sDeviceID, const char* sPath);
  128. EXPORT_API_DLL int _stdcall YI_Load_Offset_Tmp_File(const char* sDeviceID, const char* sPath);
  129. EXPORT_API_DLL int _stdcall YI_Load_AED_Offset_Tmp_File(const char* sDeviceID, const char* sPath);
  130. EXPORT_API_DLL int _stdcall YI_Set_Correct_Type(const char* sDeviceID, int iType);
  131. /********************************************************************************************************************
  132. **********************************************动 态 探 测 器 特 有 接 口*******************************************************
  133. **********************************************************************************************************************/
  134. /*------------ 1、工作流相关函数--------------*/
  135. /**
  136. * \brief freerun模式下,启动和停止连续采集
  137. */
  138. EXPORT_API_DLL int _stdcall YI_FPD_Continual_Capture_Image(const char* sDeviceID);
  139. EXPORT_API_DLL int _stdcall YI_FPD_Stop_Capture_Image(const char* sDeviceID);
  140. /**
  141. * \brief sync in模式下使用
  142. */
  143. EXPORT_API_DLL int _stdcall YI_FPD_Sync_In_Start(const char* sDeviceID);
  144. EXPORT_API_DLL int _stdcall YI_FPD_Sync_In_Stop(const char* sDeviceID);
  145. /**
  146. * \brief 从PC上传校正模板到平板探测器
  147. * \param [in] iMemoryType 当前只支持输入0
  148. * \param [in] pFolderPath 校正模板所在文件夹路径,会将文件夹内的校正模板逐个上传
  149. * \param [in] callBackFunc 回调函数,用于显示上传进度
  150. */
  151. EXPORT_API_DLL int _stdcall YI_Upload_Correct_Files(const char* sDeviceID,
  152. int iMemoryType, const char* pFolderPath, ProgressCallbackFunc callBackFunc);
  153. //////////////NEW APIs////////////////////
  154. EXPORT_API_DLL int _stdcall YI_GainCalibrate(const char* sDeviceID, unsigned long int len, unsigned char* data);
  155. EXPORT_API_DLL int _stdcall YI_OffsetCalibrate(const char* sDeviceID, unsigned long int len, unsigned char* data);
  156. EXPORT_API_DLL int _stdcall YI_DefectCalibrate(const char* sDeviceID, unsigned long int len, unsigned char* data);
  157. EXPORT_API_DLL int _stdcall YI_AEDOffsetCalibrate(const char* sDeviceID, unsigned long int len, unsigned char* data);
  158. EXPORT_API_DLL int _stdcall YI_SetWorkMode(const char* sDeviceID, unsigned long int len, unsigned char* data);
  159. EXPORT_API_DLL int _stdcall YI_GetWorkMode(const char* sDeviceID, unsigned long int len, unsigned char* data);
  160. EXPORT_API_DLL int _stdcall YI_SetDosage(const char* sDeviceID, unsigned long int len, unsigned char* data);
  161. EXPORT_API_DLL int _stdcall YI_SetROIRegion(const char* sDeviceID, unsigned long int len, unsigned char* data);
  162. EXPORT_API_DLL int _stdcall YI_ThermalSensor(const char* sDeviceID, unsigned long int len, unsigned char* data);
  163. EXPORT_API_DLL int _stdcall YI_1256Parameter(const char* sDeviceID, unsigned long int len, unsigned char* data);
  164. EXPORT_API_DLL int _stdcall YI_Restart(const char* sDeviceID);
  165. EXPORT_API_DLL int _stdcall YI_Reset(const char* sDeviceID);
  166. EXPORT_API_DLL int _stdcall YI_GetStatus(const char* sDeviceID);
  167. EXPORT_API_DLL int _stdcall YI_FPD_FreeBuffer(const char* sDeviceID);
  168. EXPORT_API_DLL int _stdcall YI_GetVersion(const char* sDeviceID);
  169. EXPORT_API_DLL int _stdcall YI_RegRead(const char* sDeviceID, unsigned int addr,unsigned int *data);
  170. EXPORT_API_DLL int _stdcall YI_RegWrite(const char* sDeviceID, unsigned int addr, unsigned int data);
  171. #ifdef __cplusplus
  172. }
  173. #endif /* __cplusplus */