DiosCalibrationLogic.h 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  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. BaseJsonDataObject<bool> HaveImgCalibration;
  42. protected:
  43. bool OEM_IF SendImageInfo();
  44. public:
  45. DiosCalibrationLogic(void);
  46. virtual ~DiosCalibrationLogic(void);
  47. //get device type
  48. virtual bool SYSTEM_CALL GetDeviceType(GUID &DevType);
  49. //get device resource
  50. virtual RET_STATUS SYSTEM_CALL GetDeviceResource(ResDataObject PARAM_OUT *pDeviceResource);
  51. //ResourceCommand Request In and Response Out
  52. virtual RET_STATUS SYSTEM_CALL Request(ResDataObject PARAM_IN *pRequest, ResDataObject PARAM_OUT *pResponse);
  53. //notify to lower layer
  54. virtual RET_STATUS SYSTEM_CALL CmdToLogicDev(ResDataObject PARAM_IN *pCmd);
  55. //功能接口
  56. virtual RET_STATUS DATA_ACTION GetCalibrationTempletStatus(ResDataObject PARAM_OUT *pDeviceResource);
  57. //common
  58. virtual RET_STATUS DATA_ACTION ActiveCalibration(DIOS_CALIBRATION_TYPE Type);
  59. virtual RET_STATUS DATA_ACTION GetRequestedDose(float &Dose);
  60. virtual RET_STATUS DATA_ACTION PrepareCalibration();
  61. virtual RET_STATUS DATA_ACTION StartCalibration();
  62. virtual RET_STATUS OEM_IF PauseCalibration();//for internal use
  63. virtual RET_STATUS DATA_ACTION StopCalibration();
  64. //有图校正
  65. virtual void OEM_IF SetCaliResult(ShareMemoryBlockID id);
  66. virtual RET_STATUS DATA_ACTION FetchFrame();
  67. virtual RET_STATUS DATA_ACTION AcceptFrame();
  68. virtual RET_STATUS DATA_ACTION RejectFrame();
  69. virtual bool DATA_ACTION Support_DarkCalib();
  70. virtual bool DATA_ACTION Support_XrayCalib();
  71. virtual bool DATA_ACTION Support_HaveImageCalib();
  72. virtual bool DATA_ACTION Support_SetSID();
  73. virtual RET_STATUS DATA_ACTION SetSID(int nSID);
  74. //correction
  75. virtual RET_STATUS DATA_ACTION SetCorrectionType(DWORD corrOptions);
  76. DWORD OEM_IF GetCorrectionType();
  77. DIOS_CALIBRATION_TYPE OEM_IF GetCalibrationType();
  78. RET_STATUS OEM_IF SetCalibrationType(DIOS_CALIBRATION_TYPE Type);
  79. DWORD OEM_IF GetValidCorrectionFlag();
  80. void OEM_IF SetValidCorrectionFlag(DWORD &Correction);
  81. DIOS_CALIBRATION_STATUS OEM_IF GetCalibrationStatus();
  82. void OEM_IF SetCalibrationStatus(DIOS_CALIBRATION_STATUS Status);
  83. DIOS_CALIBRATION_FRAMEFETCH OEM_IF GetCalibrationFetchFlag();
  84. void OEM_IF SetCalibrationFetchFlag(DIOS_CALIBRATION_FRAMEFETCH Flag);
  85. DWORD OEM_IF GetCalibrationProgress();
  86. void OEM_IF SetCalibrationProgress(DWORD progress);
  87. UINT64 OEM_IF GetMapEffectiveTime(DIOS_CALIBRATION_TYPE Type);
  88. void OEM_IF SetMapEffectiveTime(DIOS_CALIBRATION_TYPE Type, UINT64 time);
  89. RET_STATUS OEM_IF UpdateAutoDarkCalibrationStatus(DWORD AutoDarkCalibStatus);
  90. };