#pragma once #ifndef SYNCFPDUNITLOGIC_EXPORTS #ifdef _WIN64 #ifdef _DEBUG #pragma comment(lib, "SyncFPDUnitLogicX64D.lib") #else #pragma comment(lib, "SyncFPDUnitLogicX64.lib") #endif #else #ifdef _DEBUG #pragma comment(lib, "SyncFPDUnitLogicD.lib") #else #pragma comment(lib, "SyncFPDUnitLogic.lib") #endif #endif #endif #ifdef SYNCFPDUNITLOGIC_EXPORTS #define SYNFPDUNITLOGIC_API __declspec(dllexport) #else #define SYNFPDUNITLOGIC_API __declspec(dllimport) #endif #include "LogicDevice.h" #include "DIOSLogicDeviceStructure.h" class SYNFPDUNITLOGIC_API SyncFPD_LogicDevice : public LogicDevice { public: SyncFPD_LogicDevice(void); virtual ~SyncFPD_LogicDevice(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); //errors,warnings void SetErrorInfo(int errCode, char *pErrInfo); void SetWarningInfo(int warningCode, char *pWarningInfo); public: BaseJsonDataObject* m_nXWindowTime; //BaseJsonDataObject m_nXWindowList; BaseJsonDataObject* m_nSyncMode; //BaseJsonDataObject m_nSyncModeList; BaseJsonDataObject* m_bXWindowStatus; BaseJsonDataObject* m_nFPDFrameRate; int m_nApplicationMode; int m_nExamMode; public: //fpd actions virtual RET_STATUS SetApplicationMode(int nApplicationMode); //RAD FLU virtual RET_STATUS SetExamMode(int nExposeMode); virtual RET_STATUS GetXWindowList(float sXWindowList[], int &nListNum); virtual RET_STATUS GetXWindowTime(float &fXWindowTime); virtual RET_STATUS SetXWindowTime(float fXWindowTime); virtual RET_STATUS GetSyncList(int nSyncList[], int &nSyncNum); virtual RET_STATUS GetSyncMode(int &nSyncMode); virtual RET_STATUS SetSyncMode(int nSyncMode); virtual RET_STATUS GetSEQResource(ResDataObject PARAM_OUT *pDeviceResource); virtual RET_STATUS ExposePrepare(); virtual RET_STATUS ExposeReady(bool bResult); virtual RET_STATUS StartAcquisition(); virtual RET_STATUS XWindowOnNotify(); virtual RET_STATUS XWindowOffNotify(); //then refresh dark image virtual RET_STATUS StopAcquisition(); virtual RET_STATUS AcquisitionEnd(bool bResult); virtual RET_STATUS GetFPDFrameRate(unsigned short &nFPDFrameRate); virtual RET_STATUS SetFPDFrameRate(unsigned short nFPDFrameRate); //virtual RET_STATUS StartOffsetCalibration(); //virtual RET_STATUS OffsetCalibEnd(bool bResult); //virtual RET_STATUS StartCalibration(); // then DOSE //virtual RET_STATUS AcceptCalibration(); //virtual RET_STATUS RejectCalibration(); //virtual RET_STATUS AbortCalibration(); //virtual RET_STATUS CompleteCalibration(); ////virtual RET_STATUS CalibrationDose(); // DOSE ////virtual RET_STATUS CalibrationEnd(bool bResult); //virtual RET_STATUS SetDose(int nDose ); //we need check each action resource is Support or not //return yes or no inside of OEM module virtual RET_STATUS Support_GetSyncList( ); virtual RET_STATUS Support_GetSyncMode(); virtual RET_STATUS Support_SetSyncMode(); virtual RET_STATUS Support_GetXWindowList(); virtual RET_STATUS Support_GetXWindowTime(); virtual RET_STATUS Support_SetXWindowTime(); virtual RET_STATUS Support_SetApplicationMode(); virtual RET_STATUS Support_SetExamMode(); virtual RET_STATUS Support_GetSEQResource( ); virtual RET_STATUS Support_ExposePrepare(); virtual RET_STATUS Support_StartAcquisition(); virtual RET_STATUS Support_XWindowOnNotify(); virtual RET_STATUS Support_XWindowOffNotify(); virtual RET_STATUS Support_StopAcquisition(); virtual RET_STATUS Support_GetFPDFrameRate(); virtual RET_STATUS Support_SetFPDFrameRate(); //virtual RET_STATUS Support_AcquisitionEnd(bool bResult); //virtual RET_STATUS Support_StartOffsetCalibration(); ////virtual RET_STATUS Support_OffsetCalibEnd(bool bResult); //virtual RET_STATUS Support_StartCalibration(); //virtual RET_STATUS Support_AcceptCalibration(); //virtual RET_STATUS Support_RejectCalibration(); //virtual RET_STATUS Support_AbortCalibration(); //virtual RET_STATUS Support_CompleteCalibration(); //virtual RET_STATUS Support_CalibrationDose(); // then DOSE //virtual RET_STATUS Support_CalibrationEnd(bool bResult); };