#pragma once #ifndef __FPDMSM_API__ #define __FPDMSM_API__ #ifdef FPDMSM_EXPORTS #define FPDMSM_API _declspec(dllexport) #else #define FPDMSM_API _declspec(dllimport) #endif //State //FPDMSMIMPL static const wchar_t *FPDState_Close = L"Close"; static const wchar_t *FPDState_Init = L"Init"; static const wchar_t *FPDState_Exit = L"Exit"; static const wchar_t *FPDState_Error = L"Error"; static const wchar_t *FPDState_InitError = L"InitError"; static const wchar_t *FPDState_Standby = L"Standby"; static const wchar_t *FPDState_RebuildAS = L"RebuildAS"; static const wchar_t *FPDState_RecoverError = L"RecoverError"; //Sequence static const wchar_t *FPDState_SeqPrepare = L"SeqPrepare"; static const wchar_t *FPDState_SeqReady = L"SeqReady"; static const wchar_t *FPDState_SeqPending = L"SeqPending"; static const wchar_t *FPDState_SeqEnd = L"SeqEnd"; //Exposure static const wchar_t *FPDState_ExpPrepare = L"ExpPrepare"; static const wchar_t *FPDState_ExpReady = L"ExpReady"; static const wchar_t *FPDState_StartAcq = L"StartAcq"; static const wchar_t *FPDState_XWindowOn = L"XWindowOn"; static const wchar_t *FPDState_WaitngIMG = L"WaitngIMG"; static const wchar_t *FPDState_Preview = L"Preview"; static const wchar_t *FPDState_ExpOK = L"ExpOK"; static const wchar_t *FPDState_ExpEnd = L"ExpEnd"; static const wchar_t *FPDState_ExpError = L"ExpError"; static const wchar_t *FPDState_ImageError = L"ImageError"; static const wchar_t *FPDState_RecoverImageError = L"RecoverImageError"; //Action enum FPDAction { //FPDMSMIMPL Act_Init, Act_Standby, Act_Error, Act_RebuildAS, Act_Exit, Act_RecoverError, //Sequence Act_SeqPrepare, Act_SeqReady, Act_SeqPending, Act_SeqEnd, //Exposure Act_ExpPrepare, Act_ExpReady, Act_ExpEnd, Act_StartAcq, Act_XWindowOn, Act_WaitngIMG, Act_Preview, Act_ExpOK, Act_ExpError, Act_ImageError, Act_RecoverImageError, //Transform Act_OnImageError, Act_OnRecoverImageError }; //Event enum FPDEvent { //FPDMSMIMPL Evt_InitStart, Evt_InitOK, Evt_Exit, Evt_SeqStart, Evt_SeqEnd, Evt_SelectPanel, Evt_Active, Evt_Error, Evt_NoError, Evt_RecoverStart, Evt_RecoverEnd, //Sequence Evt_SeqPrepare, Evt_SeqReady, Evt_SeqFinish, Evt_ExpStart, Evt_ExpSuccess, Evt_ExpEnd, //Exposure Evt_ExpReady, Evt_FrameBegin, Evt_XWinOn, Evt_XWinOff, Evt_PreviewImage, Evt_ImageorResult, Evt_EndSeq_FromUI, Evt_ExpError, Evt_AbortImage }; typedef void (*pFPDMSMCallback)(void *pCtrl, FPDAction act); class CFPDMSM { public: virtual bool BeginLog(const wchar_t* wszLogFile,const wchar_t* wszLogName) = 0; virtual bool Init(void *pCtrl, pFPDMSMCallback pcallback ) = 0; virtual void ProcessEvent( FPDEvent evt ) = 0; virtual const wchar_t* State() = 0; virtual void Start() = 0; virtual void Stop() = 0; }; class FPDMSM_API CFPDMSMProxy : public CFPDMSM { public: CFPDMSMProxy(void); ~CFPDMSMProxy(void); virtual bool BeginLog(const wchar_t* wszLogFile,const wchar_t* wszLogName); virtual bool Init(void *pCtrl, pFPDMSMCallback pcallback ); virtual void ProcessEvent( FPDEvent evt ); virtual const wchar_t* State(); virtual void Start(); virtual void Stop(); private: CFPDMSM *m_pfpdMsm; }; #endif