DiosCalibrationLogic.h 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. #pragma once
  2. #ifndef DIOSCALIBRATIONLOGIC_EXPORTS
  3. #ifdef _WIN64
  4. #ifdef _DEBUG
  5. #pragma comment(lib, "DiosCalibrationLogicX64D.lib")
  6. #else
  7. #pragma comment(lib, "DiosCalibrationLogicX64.lib")
  8. #endif
  9. #else
  10. #ifdef _DEBUG
  11. #pragma comment(lib, "DiosCalibrationLogicD.lib")
  12. #else
  13. #pragma comment(lib, "DiosCalibrationLogic.lib")
  14. #endif
  15. #endif
  16. #endif
  17. #ifdef DIOSCALIBRATIONLOGIC_EXPORTS
  18. #define DIOSCALIBRATIONLOGIC_API __declspec(dllexport)
  19. #else
  20. #define DIOSCALIBRATIONLOGIC_API __declspec(dllimport)
  21. #endif
  22. // 下列 ifdef 块是创建使从 DLL 导出更简单的
  23. // 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 DIOSCALIBRATIONLOGIC_EXPORTS
  24. // 符号编译的。在使用此 DLL 的
  25. // 任何其他项目上不应定义此符号。这样,源文件中包含此文件的任何其他项目都会将
  26. // DIOSCALIBRATIONLOGIC_API 函数视为是从 DLL 导入的,而此 DLL 则将用此宏定义的
  27. // 符号视为是被导出的。
  28. #ifdef DIOSCALIBRATIONLOGIC_EXPORTS
  29. #define DIOSCALIBRATIONLOGIC_API __declspec(dllexport)
  30. #else
  31. #define DIOSCALIBRATIONLOGIC_API __declspec(dllimport)
  32. #endif
  33. #include "LogicDevice.h"
  34. #include "DIOSLogicDeviceStructure.h"
  35. #include "Detector_Model_Def.h"
  36. #include "ShareMemory_Image.h"
  37. class DIOSCALIBRATIONLOGIC_API DiosCalibrationLogic : public LogicDevice
  38. {
  39. ShareMemoryBlockID m_SMID;
  40. CalibrationDataInfo *m_pCaliDataInfo;
  41. protected:
  42. bool OEM_IF SendImageInfo();
  43. public:
  44. DiosCalibrationLogic(void);
  45. virtual ~DiosCalibrationLogic(void);
  46. //get device type
  47. virtual bool SYSTEM_CALL GetDeviceType(GUID &DevType);
  48. //get device resource
  49. virtual RET_STATUS SYSTEM_CALL GetDeviceResource(ResDataObject PARAM_OUT *pDeviceResource);
  50. //ResourceCommand Request In and Response Out
  51. virtual RET_STATUS SYSTEM_CALL Request(ResDataObject PARAM_IN *pRequest, ResDataObject PARAM_OUT *pResponse);
  52. //notify to lower layer
  53. virtual RET_STATUS SYSTEM_CALL CmdToLogicDev(ResDataObject PARAM_IN *pCmd);
  54. virtual RET_STATUS GetSEQResource(ResDataObject PARAM_OUT *pDeviceResource);
  55. //功能接口
  56. //状态机接口
  57. virtual RET_STATUS DATA_ACTION FramePrep();
  58. virtual RET_STATUS DATA_ACTION FrameReady();
  59. virtual RET_STATUS DATA_ACTION FrameStart();
  60. virtual RET_STATUS DATA_ACTION FrameEnd();
  61. virtual RET_STATUS DATA_ACTION FramePost();
  62. virtual bool DEVICE_SUPPORT Support_FramePrep();
  63. virtual bool DEVICE_SUPPORT Support_FrameReady();
  64. virtual bool DEVICE_SUPPORT Support_FrameStart();
  65. virtual bool DEVICE_SUPPORT Support_FrameEnd();
  66. virtual bool DEVICE_SUPPORT Support_FramePost();
  67. //3个全局退出&错误Action
  68. virtual RET_STATUS DATA_ACTION SeqError();
  69. virtual RET_STATUS DATA_ACTION SeqEnd();
  70. virtual RET_STATUS DATA_ACTION FrameError();
  71. //2个Recover
  72. virtual RET_STATUS DATA_ACTION FrameRecover();
  73. virtual RET_STATUS DATA_ACTION SeqRecover();
  74. //common
  75. virtual RET_STATUS DATA_ACTION ActiveCalibration(DIOS_CALIBRATION_TYPE Type);
  76. virtual RET_STATUS DATA_ACTION GetRequestedDose(FLOAT &Dose);
  77. virtual RET_STATUS DATA_ACTION GetRequestedFrameRate(FLOAT &FrameRate);
  78. virtual RET_STATUS DATA_ACTION StartCalibration();
  79. virtual RET_STATUS OEM_IF PauseCalibration();//for internal use
  80. virtual RET_STATUS DATA_ACTION StopCalibration();
  81. //有图校正
  82. virtual void OEM_IF SetCaliResult(ShareMemoryBlockID id);
  83. virtual RET_STATUS DATA_ACTION FetchFrame();
  84. virtual RET_STATUS DATA_ACTION AcceptFrame();
  85. virtual RET_STATUS DATA_ACTION RejectFrame();
  86. //correction
  87. virtual RET_STATUS DATA_ACTION ActiveCorrection();
  88. virtual RET_STATUS DATA_ACTION SetCorrectionType(DWORD corrOptions);
  89. virtual RET_STATUS DATA_ACTION StopCorrection();
  90. DIOS_CALIBRATION_TYPE OEM_IF GetCalibrationType();
  91. RET_STATUS OEM_IF SetCalibrationType(DIOS_CALIBRATION_TYPE Type);
  92. DWORD OEM_IF GetCorrectionType();
  93. DWORD OEM_IF GetValidCorrectionFlag();
  94. void OEM_IF SetValidCorrectionFlag(DWORD &Correction);
  95. DIOS_CALIBRATION_STATUS OEM_IF GetCalibrationStatus();
  96. void OEM_IF SetCalibrationStatus(DIOS_CALIBRATION_STATUS Status);
  97. DIOS_CALIBRATION_FRAMEFETCH OEM_IF GetCalibrationFetchFlag();
  98. void OEM_IF SetCalibrationFetchFlag(DIOS_CALIBRATION_FRAMEFETCH Flag);
  99. DWORD OEM_IF GetCalibrationProgress();
  100. void OEM_IF SetCalibrationProgress(DWORD progress);
  101. UINT64 OEM_IF GetMapEffectiveTime(DIOS_CALIBRATION_TYPE Type);
  102. void OEM_IF SetMapEffectiveTime(DIOS_CALIBRATION_TYPE Type, UINT64 time);
  103. RET_STATUS OEM_IF UpdateAutoDarkCalibrationStatus(DWORD AutoDarkCalibStatus);
  104. };