#pragma once #ifndef SYNCGENUNITLOGICEX_EXPORTS #ifdef _WIN64 #ifdef _DEBUG #pragma comment(lib, "SyncGenUnitLogicExX64D.lib") #else #pragma comment(lib, "SyncGenUnitLogicExX64.lib") #endif #else #ifdef _DEBUG #pragma comment(lib, "SyncGenUnitLogicExD.lib") #else #pragma comment(lib, "SyncGenUnitLogicEx.lib") #endif #endif #endif #ifdef SYNCGENUNITLOGICEX_EXPORTS #define SYNGENUNITLOGICEX_API __declspec(dllexport) #else #define SYNGENUNITLOGICEX_API __declspec(dllimport) #endif #include "LogicDevice.h" class SYNGENUNITLOGICEX_API SyncGen_LogicDeviceEx : public LogicDevice { public: SyncGen_LogicDeviceEx(void); virtual ~SyncGen_LogicDeviceEx(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); public: //ex:发生器当前处于的同步状态 ResDataObject * m_SyncStatus; //ex:发生器接收到的同步状态信号,如手闸一档信号,二档信号,以及曝光信号HV_Triger等 ResDataObject * m_SyncExpectStatus; //Cur Exam Mode ResDataObject *m_pCurrentExamMode; ResDataObject *ExamList; public: virtual RET_STATUS SYSTEM_CALL GetSEQResource(ResDataObject PARAM_OUT *pDeviceResource); //virtual RET_STATUS SYSTEM_CALL SetXrayOnOff(bool state); //virtual RET_STATUS DATA_ACTION SetSyncMode(int nSyncMode); virtual RET_STATUS DATA_ACTION UpdateGeneratorSyncStatus(int snycmode);//from OEM Layer to Data Layer virtual RET_STATUS DATA_ACTION ExpectToSyncStatus(int snycmode);//from OEM Layer to Data Layer virtual RET_STATUS DATA_ACTION GetExamMode(const char *pExamKey);//from OEM Layer to Data Layer virtual RET_STATUS OEM_IF SetGeneratortoSyncStatus(int snycmode);//from Data Layer to OEM Layer virtual RET_STATUS OEM_IF SelectExamMode(const char *pExamKey); virtual BOOL OEM_IF PreSetGeneratortoSyncStatus(int snycmode); virtual int OEM_IF GetExpectToSyncStatus(); virtual RET_STATUS SetExamInfo(ResDataObject PARAM_IN& pParam); virtual RET_STATUS SetExposureTimes(int num); //状态机相关 virtual RET_STATUS DATA_ACTION FramePrep(); virtual RET_STATUS DATA_ACTION FrameReady(); virtual RET_STATUS DATA_ACTION FrameStart(); virtual RET_STATUS DATA_ACTION FrameIn(); virtual RET_STATUS DATA_ACTION FrameOut(); virtual RET_STATUS DATA_ACTION FrameEnd(); virtual RET_STATUS DATA_ACTION FramePost(); virtual RET_STATUS DATA_ACTION SeqEnd(); virtual RET_STATUS DATA_ACTION FrameError(); virtual RET_STATUS DATA_ACTION SeqError(); virtual bool DEVICE_SUPPORT Support_FramePrep(); virtual bool DEVICE_SUPPORT Support_FrameReady(); virtual bool DEVICE_SUPPORT Support_FrameStart(); virtual bool DEVICE_SUPPORT Support_FrameIn(); virtual bool DEVICE_SUPPORT Support_FrameOut(); virtual bool DEVICE_SUPPORT Support_FramePost(); virtual RET_STATUS RESET(); virtual RET_STATUS GetHandSwitchState(int state); };