#pragma once #ifndef DIOSCALIBRATIONLOGIC_EXPORTS #ifdef _WIN64 #ifdef _DEBUG #pragma comment(lib, "DiosCalibrationLogicX64D.lib") #else #pragma comment(lib, "DiosCalibrationLogicX64.lib") #endif #else #ifdef _DEBUG #pragma comment(lib, "DiosCalibrationLogicD.lib") #else #pragma comment(lib, "DiosCalibrationLogic.lib") #endif #endif #endif #ifdef DIOSCALIBRATIONLOGIC_EXPORTS #define DIOSCALIBRATIONLOGIC_API __declspec(dllexport) #else #define DIOSCALIBRATIONLOGIC_API __declspec(dllimport) #endif // 下列 ifdef 块是创建使从 DLL 导出更简单的 // 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 DIOSCALIBRATIONLOGIC_EXPORTS // 符号编译的。在使用此 DLL 的 // 任何其他项目上不应定义此符号。这样,源文件中包含此文件的任何其他项目都会将 // DIOSCALIBRATIONLOGIC_API 函数视为是从 DLL 导入的,而此 DLL 则将用此宏定义的 // 符号视为是被导出的。 #ifdef DIOSCALIBRATIONLOGIC_EXPORTS #define DIOSCALIBRATIONLOGIC_API __declspec(dllexport) #else #define DIOSCALIBRATIONLOGIC_API __declspec(dllimport) #endif #include "LogicDevice.h" #include "DIOSLogicDeviceStructure.h" #include "Detector_Model_Def.h" #include "ShareMemory_Image.h" class DIOSCALIBRATIONLOGIC_API DiosCalibrationLogic : public LogicDevice { ShareMemoryBlockID m_SMID; CalibrationDataInfo *m_pCaliDataInfo; BaseJsonDataObject HaveImgCalibration; protected: bool OEM_IF SendImageInfo(); public: DiosCalibrationLogic(void); virtual ~DiosCalibrationLogic(void); //get device type virtual bool SYSTEM_CALL GetDeviceType(GUID &DevType); //get device resource virtual RET_STATUS SYSTEM_CALL GetDeviceResource(ResDataObject PARAM_OUT *pDeviceResource); //ResourceCommand Request In and Response Out virtual RET_STATUS SYSTEM_CALL Request(ResDataObject PARAM_IN *pRequest, ResDataObject PARAM_OUT *pResponse); //notify to lower layer virtual RET_STATUS SYSTEM_CALL CmdToLogicDev(ResDataObject PARAM_IN *pCmd); //功能接口 virtual RET_STATUS DATA_ACTION GetCalibrationTempletStatus(ResDataObject PARAM_OUT *pDeviceResource); //common virtual RET_STATUS DATA_ACTION ActiveCalibration(DIOS_CALIBRATION_TYPE Type); virtual RET_STATUS DATA_ACTION GetRequestedDose(float &Dose); virtual RET_STATUS DATA_ACTION PrepareCalibration(); virtual RET_STATUS DATA_ACTION StartCalibration(); virtual RET_STATUS OEM_IF PauseCalibration();//for internal use virtual RET_STATUS DATA_ACTION StopCalibration(); //有图校正 virtual void OEM_IF SetCaliResult(ShareMemoryBlockID id); virtual RET_STATUS DATA_ACTION FetchFrame(); virtual RET_STATUS DATA_ACTION AcceptFrame(); virtual RET_STATUS DATA_ACTION RejectFrame(); virtual bool DATA_ACTION Support_DarkCalib(); virtual bool DATA_ACTION Support_XrayCalib(); virtual bool DATA_ACTION Support_HaveImageCalib(); virtual bool DATA_ACTION Support_SetSID(); virtual RET_STATUS DATA_ACTION SetSID(int nSID); //correction virtual RET_STATUS DATA_ACTION SetCorrectionType(DWORD corrOptions); DWORD OEM_IF GetCorrectionType(); DIOS_CALIBRATION_TYPE OEM_IF GetCalibrationType(); RET_STATUS OEM_IF SetCalibrationType(DIOS_CALIBRATION_TYPE Type); DWORD OEM_IF GetValidCorrectionFlag(); void OEM_IF SetValidCorrectionFlag(DWORD &Correction); DIOS_CALIBRATION_STATUS OEM_IF GetCalibrationStatus(); void OEM_IF SetCalibrationStatus(DIOS_CALIBRATION_STATUS Status); DIOS_CALIBRATION_FRAMEFETCH OEM_IF GetCalibrationFetchFlag(); void OEM_IF SetCalibrationFetchFlag(DIOS_CALIBRATION_FRAMEFETCH Flag); DWORD OEM_IF GetCalibrationProgress(); void OEM_IF SetCalibrationProgress(DWORD progress); UINT64 OEM_IF GetMapEffectiveTime(DIOS_CALIBRATION_TYPE Type); void OEM_IF SetMapEffectiveTime(DIOS_CALIBRATION_TYPE Type, UINT64 time); RET_STATUS OEM_IF UpdateAutoDarkCalibrationStatus(DWORD AutoDarkCalibStatus); };