#pragma once #ifndef SYNCGENUNITLOGIC_EXPORTS #ifdef _WIN64 #ifdef _DEBUG #pragma comment(lib, "SyncGenUnitLogicX64D.lib") #else #pragma comment(lib, "SyncGenUnitLogicX64.lib") #endif #else #ifdef _DEBUG #pragma comment(lib, "SyncGenUnitLogicD.lib") #else #pragma comment(lib, "SyncGenUnitLogic.lib") #endif #endif #endif #ifdef SYNCGENUNITLOGIC_EXPORTS #define SYNGENUNITLOGIC_API __declspec(dllexport) #else #define SYNGENUNITLOGIC_API __declspec(dllimport) #endif #include "LogicDevice.h" typedef enum _SyncGenStatus { SYNCGEN_ERROR = -1, SYNCGEN_DISABLEEXP, SYNCGEN_ENABLEEXP, SYNCGEN_ENABLEXRAY, SYNCGEN_XRAYON, SYNCGEN_MAX }SYNCGENSTATUS; class SYNGENUNITLOGIC_API SyncGen_LogicDevice : public LogicDevice { public: SyncGen_LogicDevice(void); virtual ~SyncGen_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: //以下三种状态应该合并成一个状态,基于RSNA时间不够,这个暂时保留为3个状态 //ex:曝光使能状态 BaseJsonDataObject* m_bExposeEnableStatus; //ex:出线使能状态 BaseJsonDataObject* m_bXrayEnableStatus; //ex:出线状态 BaseJsonDataObject* m_bXrayStatus; public: //fpd actions virtual RET_STATUS SetApplicationMode(int nApplicationMode); //RAD FLU virtual RET_STATUS SetExamMode(int nExposeMode); virtual RET_STATUS GetSEQResource(ResDataObject PARAM_OUT *pDeviceResource); //for the RSNA,暂时将就一下 void GetStatus(SYNCGENSTATUS &Status);//0:DisableExp,1:EnableExp,2:EnableXray,3:XrayOn //Gen actions virtual RET_STATUS ExposePrepare(); //曝光使能 virtual RET_STATUS StopExpose(); //曝光禁用 virtual RET_STATUS ExposeReady(bool bResult); //曝光使能的反馈 virtual RET_STATUS InvokeXray(); virtual RET_STATUS XrayOnNotify(); virtual RET_STATUS XrayOffNotify(); virtual RET_STATUS StopXray(); virtual RET_STATUS StopXrayResult(bool bResult); virtual RET_STATUS ErrorState(bool bResult); //we need check each action resource is Support or not //return yes or no inside of OEM module virtual RET_STATUS Support_SetApplicationMode(); virtual RET_STATUS Support_SetExamMode(); virtual RET_STATUS Support_ExposePrepare(); virtual RET_STATUS Support_StopExpose(); virtual RET_STATUS Support_InvokeXray(); virtual RET_STATUS Support_XrayOnNotify(); virtual RET_STATUS Support_XrayOffNotify(); virtual RET_STATUS Support_StopXray(); };