#pragma once #include "LogicDevice.h" #include "ResDataObject.h" #include "Detector_Model_Def.h" #ifndef SYNCFPDUNITLOGICEX_EXPORTS #ifdef _WIN64 #ifdef _DEBUG #pragma comment(lib, "SyncFpdUnitLogicExX64D.lib") #else #pragma comment(lib, "SyncFpdUnitLogicExX64.lib") #endif #else #ifdef _DEBUG #pragma comment(lib, "SyncFpdUnitLogicExD.lib") #else #pragma comment(lib, "SyncFpdUnitLogicEx.lib") #endif #endif #endif #ifdef SYNCFPDUNITLOGICEX_EXPORTS #define SYNCFPDUNITLOGICEX_API __declspec(dllexport) #define SYNCFPDUNITLOGICEX_C_API extern "C" __declspec(dllexport) #else #define SYNCFPDUNITLOGICEX_API __declspec(dllimport) #define SYNCFPDUNITLOGICEX_C_API extern "C" __declspec(dllimport) #endif // 此类是从 SyncFpdUnitLogicEx.dll 导出的 class SYNCFPDUNITLOGICEX_API SyncFpdUnitLogicEx : public LogicDevice { //ResDataObject* m_pnSyncMode; //ResDataObject* m_pnHardwareTriggerMode; //ResDataObject* m_pnXWindowTime; //ResDataObject* m_pbXWindowStatus; //ResDataObject* m_pfFPDFrameRate; ResDataObject* m_pSyncData;//xwindowsize,syncmode,triggermode,xwindowstatus,framerate public: SyncFpdUnitLogicEx(void); virtual ~SyncFpdUnitLogicEx(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 StartAcquisition(); virtual RET_STATUS DATA_ACTION StopAcquisition(); virtual RET_STATUS DATA_ACTION GetSEQResource(ResDataObject PARAM_OUT *pDeviceResource); //状态机相关 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(); //3个全局退出&错误Action virtual RET_STATUS DATA_ACTION SeqError(); virtual RET_STATUS DATA_ACTION SeqEnd(); virtual RET_STATUS DATA_ACTION FrameError(); //1个Recover virtual RET_STATUS DATA_ACTION FrameRecover(); virtual RET_STATUS DATA_ACTION SeqRecover(); virtual RET_STATUS DATA_ACTION SetFrameRate(FLOAT frameRate); virtual RET_STATUS DATA_ACTION SetSyncMode(SYNC_MODE nSyncMode, HARDWARE_TRIGGER_MODE TriggerMode); bool OEM_IF Prep_StartAcquisition(); bool OEM_IF Prep_StopAcquisition(); DETECTOR_STATUS OEM_IF GetDetectorStatus(); RET_STATUS OEM_IF SetDetectorStatus(DETECTOR_STATUS status); DETECTOR_EXPECTOP OEM_IF GetDetectorExpectOp(); RET_STATUS OEM_IF SetDetectorExpectOp(DETECTOR_EXPECTOP op); RET_STATUS OEM_IF SetXwindowSize(DWORD XwindowSize); RET_STATUS OEM_IF XWindowOnNotify(); RET_STATUS OEM_IF XWindowOffNotify(); //RET_STATUS OEM_IF SetDetectorStatus(DETECTOR_STATUS status); };