#pragma once #include using namespace std; #include "../../common/commondata.h" #include "../../common/LogFile.h" #include "../../common/AppSettings.h" #include "../../common/rfmodeconfigures.h" #include "../../common/EComRFParam_i.h" class CAcqCtrl : public CWnd { DECLARE_DYNAMIC(CAcqCtrl) public: CAcqCtrl(); virtual ~CAcqCtrl(); bool Create(); CWinThread* m_Thread; DWORD m_idThread; ZSKK_IMAGE_INFO m_FullImgInfo; WORD * m_pFullImgData; int m_nMaxEXIValue; int m_nMinEXIValue; bool StartMonitoring(CAcqCtrl* pCurAcqCtl); bool StopMonitoring(); // virtual bool GetDemoSpotImage(); //模拟用,获取单张图像 // virtual bool SetDemoFrameRate(float fps); // virtual bool GetDemoFluImage(int nDemoNum); //模拟用,获取透视图像 //Workflow virtual bool InitDETECTOR(HWND hWnd, bool bState); virtual bool ExitDETECTOR(void); virtual bool InitParameters(void); virtual bool BeginWorkMode(void); virtual bool EndWorkMode(void); static UINT ACQThread(LPVOID pParam); virtual bool StartGrab(); virtual bool StopGrab(int nXRayOnNum = 0); virtual bool SetGrabMode(int nmode); virtual bool ExpEnable(); virtual bool ExpDisable(); virtual bool FluEnable(); virtual bool FluDisable(); //Calibration ////CAL Mode: 1 defect, 2: Linear Gain, 4: Offset 8: Polynomial gain, 16: Blinking virtual bool BeginCalibration(int nLogicMode,int nOffsetIndex,int nCalMode); virtual bool EnterCalibration(); virtual bool CalibrateAllModes(); virtual bool ExitCalibration(); virtual bool AbortCalibration(); virtual bool GetCalibrationStatus(int nLogicMode,int nOffsetIndex,ZSKK_CAL_STATUS& modeStatus); virtual bool EnableAutoOffset(bool bEn); virtual bool StartOffsetRefresh(); virtual bool StartOffsetCalibration(); virtual bool OffsetByUser(); //Command virtual bool SelectRADMode(int nLogicMode, int nOffsetIndex); virtual bool SelectFLUMode(int nLogicMode, int nOffsetIndex); virtual bool SelectCINEMode(int nLogicMode, int nOffsetIndex); virtual bool SetRadOffsetMode(int nLogicMode, int nOffsetIndex, int nSpeed); virtual bool SetFluOffsetMode(int nLogicMode, int nOffsetIndex, float fSpeed); virtual bool SetCinOffsetMode(int nLogicMode, int nOffsetIndex, float fSpeed); virtual void setNextStepEvent(); virtual bool DownloadCorrectionFile2Device(); virtual bool ActiveRADMode(); virtual bool ActiveFLUMode(); virtual bool ActiveCINEMode(); virtual bool SetSpotFrameRate(float fps); //Set sequence shot fps virtual bool SetFLUFrameRate(float fps); //Set FLU fps virtual bool SetCINEFrameRate(float fps); //Set CINE fps virtual bool GetActiveMode(int &nLogicMode, int &nOffsetIndex); virtual bool GetOffsetInfo(int nLogicMode, vector &vecOffsetInfo); virtual bool GetLogicModeList(vector &vecDetectorMode); // Message processing virtual bool OnCOPYDATA_MSG_Process(WPARAM wParam, LPARAM lParam); virtual bool OnMSGWORKFLOW_Process(WPARAM wParam, LPARAM lParam); virtual bool OnMSGCALIBRATION_Process(WPARAM wParam, LPARAM lParam); virtual bool OnMSGPARAMETER_Process(WPARAM wParam, LPARAM lParam); // 消息(不包含数据)的处理; nMSGOutMode(0-异步,1-同步); bool MSGControl(CWnd *Wnd, int nMSGType, WPARAM nMSGwParam, LPARAM nMSGpParam, int nMSGOutMode = ZSKK_MSG_TYPE_SYNC_NO, int nTargetPosition = ZSKK_MSG_TARGETHANDLE_NULL); protected: DECLARE_MESSAGE_MAP() public: // Calibration handle // 消息发送的目标窗口 HWND m_hWnd; bool m_bState; bool m_IsExpEnable; bool m_IsFluEnable; bool m_bIsHandDwn; bool m_bIsFootDwn; CLogFile* logfile; int m_ImgWidth; int m_ImgHeight; float m_fps; int m_nModeSize; ZSKK_IMAGE_INFO m_ImgInfo; //save image data; WORD * m_pDemoImgData; ZSKK_ACQ_INFO m_AcqInfo; //Save image information such as image width, height; RFModeConfigures RFModeConf; protected: virtual bool OnXrayGenStart(); virtual bool OnXrayGenStop(); virtual bool OnXrayGenSetDose(); virtual bool OnXrayCalSuccess(); virtual bool OnXrayCalFail(); virtual bool OnSYNC(); virtual bool OnTimeOut(); virtual bool OnStatus(); virtual bool OnWarning(); virtual bool OnModeActive(); private: // bool ReadDemoImage(); UINT_PTR m_ntimerDemoFlu; WORD * m_pDemoFluData[5]; int m_nFluIndex; int m_nDemoNum; int m_nDemoTimerdur; public: virtual bool ResetConnection(); };