AcqCtrl.h 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. #pragma once
  2. #include <vector>
  3. using namespace std;
  4. #include "../../common/commondata.h"
  5. #include "../../common/LogFile.h"
  6. #include "../../common/AppSettings.h"
  7. #include "../../common/rfmodeconfigures.h"
  8. #include "../../common/EComRFParam_i.h"
  9. class CAcqCtrl : public CWnd
  10. {
  11. DECLARE_DYNAMIC(CAcqCtrl)
  12. public:
  13. CAcqCtrl();
  14. virtual ~CAcqCtrl();
  15. bool Create();
  16. CWinThread* m_Thread;
  17. DWORD m_idThread;
  18. ZSKK_IMAGE_INFO m_FullImgInfo;
  19. WORD * m_pFullImgData;
  20. int m_nMaxEXIValue;
  21. int m_nMinEXIValue;
  22. bool StartMonitoring(CAcqCtrl* pCurAcqCtl);
  23. bool StopMonitoring();
  24. // virtual bool GetDemoSpotImage(); //模拟用,获取单张图像
  25. // virtual bool SetDemoFrameRate(float fps);
  26. // virtual bool GetDemoFluImage(int nDemoNum); //模拟用,获取透视图像
  27. //Workflow
  28. virtual bool InitDETECTOR(HWND hWnd, bool bState);
  29. virtual bool ExitDETECTOR(void);
  30. virtual bool InitParameters(void);
  31. virtual bool BeginWorkMode(void);
  32. virtual bool EndWorkMode(void);
  33. static UINT ACQThread(LPVOID pParam);
  34. virtual bool StartGrab();
  35. virtual bool StopGrab(int nXRayOnNum = 0);
  36. virtual bool SetGrabMode(int nmode);
  37. virtual bool ExpEnable();
  38. virtual bool ExpDisable();
  39. virtual bool FluEnable();
  40. virtual bool FluDisable();
  41. //Calibration
  42. ////CAL Mode: 1 defect, 2: Linear Gain, 4: Offset 8: Polynomial gain, 16: Blinking
  43. virtual bool BeginCalibration(int nLogicMode,int nOffsetIndex,int nCalMode);
  44. virtual bool EnterCalibration();
  45. virtual bool CalibrateAllModes();
  46. virtual bool ExitCalibration();
  47. virtual bool AbortCalibration();
  48. virtual bool GetCalibrationStatus(int nLogicMode,int nOffsetIndex,ZSKK_CAL_STATUS& modeStatus);
  49. virtual bool EnableAutoOffset(bool bEn);
  50. virtual bool StartOffsetRefresh();
  51. virtual bool StartOffsetCalibration();
  52. virtual bool OffsetByUser();
  53. //Command
  54. virtual bool SelectRADMode(int nLogicMode, int nOffsetIndex);
  55. virtual bool SelectFLUMode(int nLogicMode, int nOffsetIndex);
  56. virtual bool SelectCINEMode(int nLogicMode, int nOffsetIndex);
  57. virtual bool SetRadOffsetMode(int nLogicMode, int nOffsetIndex, int nSpeed);
  58. virtual bool SetFluOffsetMode(int nLogicMode, int nOffsetIndex, float fSpeed);
  59. virtual bool SetCinOffsetMode(int nLogicMode, int nOffsetIndex, float fSpeed);
  60. virtual void setNextStepEvent();
  61. virtual bool DownloadCorrectionFile2Device();
  62. virtual bool ActiveRADMode();
  63. virtual bool ActiveFLUMode();
  64. virtual bool ActiveCINEMode();
  65. virtual bool SetSpotFrameRate(float fps); //Set sequence shot fps
  66. virtual bool SetFLUFrameRate(float fps); //Set FLU fps
  67. virtual bool SetCINEFrameRate(float fps); //Set CINE fps
  68. virtual bool GetActiveMode(int &nLogicMode, int &nOffsetIndex);
  69. virtual bool GetOffsetInfo(int nLogicMode, vector <ZSKK_PROTOCOL_OFFSET_INFO> &vecOffsetInfo);
  70. virtual bool GetLogicModeList(vector <ZSKK_DETECTOR_MODE_INFO> &vecDetectorMode);
  71. // Message processing
  72. virtual bool OnCOPYDATA_MSG_Process(WPARAM wParam, LPARAM lParam);
  73. virtual bool OnMSGWORKFLOW_Process(WPARAM wParam, LPARAM lParam);
  74. virtual bool OnMSGCALIBRATION_Process(WPARAM wParam, LPARAM lParam);
  75. virtual bool OnMSGPARAMETER_Process(WPARAM wParam, LPARAM lParam);
  76. // 消息(不包含数据)的处理; nMSGOutMode(0-异步,1-同步);
  77. bool MSGControl(CWnd *Wnd, int nMSGType, WPARAM nMSGwParam, LPARAM nMSGpParam, int nMSGOutMode = ZSKK_MSG_TYPE_SYNC_NO, int nTargetPosition = ZSKK_MSG_TARGETHANDLE_NULL);
  78. protected:
  79. DECLARE_MESSAGE_MAP()
  80. public:
  81. // Calibration handle
  82. // 消息发送的目标窗口
  83. HWND m_hWnd;
  84. bool m_bState;
  85. bool m_IsExpEnable;
  86. bool m_IsFluEnable;
  87. bool m_bIsHandDwn;
  88. bool m_bIsFootDwn;
  89. CLogFile* logfile;
  90. int m_ImgWidth;
  91. int m_ImgHeight;
  92. float m_fps;
  93. int m_nModeSize;
  94. ZSKK_IMAGE_INFO m_ImgInfo; //save image data;
  95. WORD * m_pDemoImgData;
  96. ZSKK_ACQ_INFO m_AcqInfo; //Save image information such as image width, height;
  97. RFModeConfigures RFModeConf;
  98. protected:
  99. virtual bool OnXrayGenStart();
  100. virtual bool OnXrayGenStop();
  101. virtual bool OnXrayGenSetDose();
  102. virtual bool OnXrayCalSuccess();
  103. virtual bool OnXrayCalFail();
  104. virtual bool OnSYNC();
  105. virtual bool OnTimeOut();
  106. virtual bool OnStatus();
  107. virtual bool OnWarning();
  108. virtual bool OnModeActive();
  109. private:
  110. // bool ReadDemoImage();
  111. UINT_PTR m_ntimerDemoFlu;
  112. WORD * m_pDemoFluData[5];
  113. int m_nFluIndex;
  114. int m_nDemoNum;
  115. int m_nDemoTimerdur;
  116. public:
  117. virtual bool ResetConnection();
  118. };