AcqUnitLogic.h 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. #pragma once
  2. #ifndef ACQUNITLOGIC_EXPORTS
  3. #ifdef _WIN64
  4. #ifdef _DEBUG
  5. #pragma comment(lib, "AcqUnitLogicX64D.lib")
  6. #else
  7. #pragma comment(lib, "AcqUnitLogicX64.lib")
  8. #endif
  9. #else
  10. #ifdef _DEBUG
  11. #pragma comment(lib, "AcqUnitLogicD.lib")
  12. #else
  13. #pragma comment(lib, "AcqUnitLogic.lib")
  14. #endif
  15. #endif
  16. #endif
  17. #define PARAM_IN_TYPE
  18. #ifdef ACQUNITLOGIC_EXPORTS
  19. #define ACQUNITLOGIC_API __declspec(dllexport)
  20. #else
  21. #define ACQUNITLOGIC_API __declspec(dllimport)
  22. #endif
  23. #include"LogicDevice.h"
  24. #include"DIOSLogicDeviceStructure.h"
  25. #include"ShareMemClientInterface.h"
  26. typedef enum _GAIN_Mode {
  27. GAIN_ORIG,
  28. GAIN_2,
  29. GAIN_4,
  30. GAIN_8
  31. }GAIN_MODE;
  32. typedef enum _ZOOM_Mode {
  33. ZOOM_ORIG,
  34. ZOOM_2,
  35. ZOOM_3,
  36. ZOOM_4
  37. }ZOOM_MODE;
  38. typedef enum _BINNING_Mode {
  39. BINNING_ORIG,
  40. BINNING_2_2,
  41. BINNING_3_3,
  42. BINNING_4_4
  43. }BINNING_MODE;
  44. class ACQUNITLOGIC_API AcqUnitLogic : public LogicDevice
  45. {
  46. private:
  47. BaseJsonDataObject<unsigned int>* m_State;
  48. BaseJsonDataObject<unsigned int>* m_AppMode;
  49. BaseJsonDataObject<unsigned int>* m_ExamMode;
  50. BaseJsonDataObject<unsigned int>* m_GainMode;
  51. BaseJsonDataObject<unsigned int>* m_ZoomMode;
  52. BaseJsonDataObject<unsigned int>* m_BinningMode;
  53. BaseJsonDataObject<unsigned long long>* m_ImgId;
  54. ImgInfoDef* m_FullImg;
  55. ImgInfoDef* m_PreviewImg;
  56. WORD*m_pDataPtr;
  57. WORD *m_pImgBuffer;
  58. unsigned int m_DE_Seq_ExpCount;
  59. bool m_bReqImage;
  60. unsigned long long m_nFrameId;
  61. ImgDataInfo* m_ImgDataInfo;
  62. CShareMemClient m_shareMemclient;
  63. C2DGrayImageData *m_pImgFull;
  64. C2DGrayImageData *m_pImgPrev;
  65. CBaseFunctionDataElement *m_pElement;
  66. unsigned long long m_dwShareMemIdFull;
  67. unsigned long long m_dwShareMemIdPreview;
  68. char m_chLog[512];
  69. public:
  70. AcqUnitLogic(void);
  71. virtual ~AcqUnitLogic(void);
  72. //get device type
  73. virtual bool SYSTEM_CALL GetDeviceType(GUID &DevType);
  74. //get device resource
  75. virtual RET_STATUS SYSTEM_CALL GetDeviceResource(ResDataObject PARAM_OUT *pDeviceResource);
  76. //ResourceCommand Request In and Response Out
  77. virtual RET_STATUS SYSTEM_CALL Request(ResDataObject PARAM_IN *pRequest, ResDataObject PARAM_OUT *pResponse);
  78. //notify to lower layer
  79. virtual RET_STATUS SYSTEM_CALL CmdToLogicDev(ResDataObject PARAM_IN *pCmd);
  80. //errors,warnings
  81. void SetErrorInfo(int errCode, char *pErrInfo);
  82. void SetWarningInfo(int warningCode, char *pWarningInfo);
  83. private://data层内部使用
  84. int RegShareMem();
  85. bool UnRegShareMem();
  86. bool GetShareMemBuf( IMAGE_VIEW_TYPE eType, std::wstring strBufName, UINT32 nWidth, UINT32 nHeight, UINT32 nBit, unsigned long long nFrameId);
  87. int WriteImageToShareMem(unsigned long long &dwShareMemId);
  88. public://Data层实现,Owner
  89. virtual bool DEVICE_SUPPORT Support_GetFullImgDimension();
  90. virtual bool DEVICE_SUPPORT Support_GetPreviewDimension();
  91. virtual bool DEVICE_SUPPORT Support_GetAppMode();
  92. virtual bool DEVICE_SUPPORT Support_SetAppMode();
  93. virtual bool DEVICE_SUPPORT Support_GetExamMode();
  94. virtual bool DEVICE_SUPPORT Support_SetExamMode();
  95. virtual bool DEVICE_SUPPORT Support_SetImgID();
  96. virtual bool DEVICE_SUPPORT Support_GetImgID();
  97. virtual bool DEVICE_SUPPORT Support_GetSEQResource();
  98. virtual bool DEVICE_SUPPORT Support_FramePostState();
  99. virtual bool DEVICE_SUPPORT Support_FramePrepState();
  100. virtual bool DEVICE_SUPPORT Support_SeqPrepState();
  101. virtual bool DEVICE_SUPPORT Support_SeqPostState();
  102. virtual bool DEVICE_SUPPORT Support_FrameError();
  103. //for the Aepx RF Detector
  104. virtual bool DEVICE_SUPPORT Support_FetchFrame();
  105. RET_STATUS DATA_ACTION FrameErrState();
  106. RET_STATUS DATA_ACTION FramePrepState();
  107. RET_STATUS DATA_ACTION FramePostState();
  108. RET_STATUS DATA_ACTION SeqPrepState();
  109. RET_STATUS DATA_ACTION SeqPostState();
  110. RET_STATUS DATA_ACTION GetSEQResource(ResDataObject*res);
  111. RET_STATUS DATA_ACTION DTL_FetchFrame(IMAGE_VIEW_TYPE nType, void PARAM_IN PARAM_OUT** pImage
  112. , unsigned int PARAM_IN nWidth, unsigned int PARAM_IN nHeight, unsigned int PARAM_IN nBit);
  113. RET_STATUS DATA_ACTION GetFullImgDimension(ImgInfoDef PARAM_OUT& ImgSt);
  114. RET_STATUS DATA_ACTION GetPreviewDimension(ImgInfoDef PARAM_OUT&ImgSt);
  115. RET_STATUS DATA_ACTION GetAppMode(unsigned int PARAM_OUT&AppMode);
  116. RET_STATUS DATA_ACTION SetAppMode(unsigned int PARAM_IN AppMode);
  117. RET_STATUS DATA_ACTION GetExamMode(unsigned int PARAM_OUT&ExamMode);
  118. RET_STATUS DATA_ACTION SetExamMode(unsigned int PARAM_IN ExamMode);
  119. RET_STATUS DATA_ACTION SetImgID(unsigned long long PARAM_IN ImgId);
  120. RET_STATUS DATA_ACTION GetImgID(unsigned long long PARAM_IN &ImgId);
  121. public://Data实现,OEM使用
  122. RET_STATUS DATA_ACTION SetFullImgInfo(unsigned int PARAM_IN nWidth, unsigned int PARAM_IN nHeight, unsigned int PARAM_IN nBit);
  123. RET_STATUS DATA_ACTION SetPreviewImgInfo(unsigned int PARAM_IN nWidth, unsigned int PARAM_IN nHeight, unsigned int PARAM_IN nBit);
  124. RET_STATUS DATA_ACTION SeqStateNotify(string sState,bool bValue);
  125. RET_STATUS DATA_ACTION SetState(unsigned int nState);
  126. RET_STATUS DATA_ACTION SetPanelPrepare(bool bRet);//send seqpre state
  127. RET_STATUS DATA_ACTION SetPanelReady(bool bRet);//send seqpost state
  128. RET_STATUS DATA_ACTION SendFramePost(bool bRet);//send seqpost state
  129. RET_STATUS DATA_ACTION SetError(unsigned int nErrorCode);
  130. void LogInfo(string string);
  131. void LogWarn(string string);
  132. void LogError(string string);
  133. bool SendImageInfo(IMAGE_VIEW_TYPE eType, unsigned long long dwShareMemId, unsigned long long nImageId);//为了RF!!!
  134. public://OEM重写,需要调用基类对应的函数
  135. virtual bool DEVICE_SUPPORT Support_GetFrame();
  136. virtual bool DEVICE_SUPPORT Support_ImageNotify();
  137. virtual bool DEVICE_SUPPORT Support_Preview();
  138. virtual bool DEVICE_SUPPORT Support_GetGainMode();
  139. virtual bool DEVICE_SUPPORT Support_SetGainMode();
  140. virtual bool DEVICE_SUPPORT Support_GetZoomMode();
  141. virtual bool DEVICE_SUPPORT Support_SetZoomMode();
  142. virtual bool DEVICE_SUPPORT Support_GetBinningMode();
  143. virtual bool DEVICE_SUPPORT Support_SetBinningMode();
  144. virtual RET_STATUS DATA_ACTION Reset() = 0;
  145. virtual RET_STATUS DATA_ACTION BeginWorkMode() = 0;
  146. virtual RET_STATUS DATA_ACTION EndWorkMode() = 0;
  147. virtual RET_STATUS DATA_ACTION SetExpEnable(bool bEnable) = 0;
  148. virtual RET_STATUS DATA_ACTION SetFrameErrNotify(bool bEnable);
  149. virtual RET_STATUS DATA_ACTION ImageNotify(IMAGE_VIEW_TYPE nType);
  150. virtual RET_STATUS DEVICE_ACTION GetFrame(IMAGE_VIEW_TYPE nType, void PARAM_IN PARAM_OUT* pOemImage, unsigned int PARAM_OUT &nWidth, unsigned int PARAM_OUT &nHeight);
  151. virtual RET_STATUS DEVICE_ACTION FetchFrame(IMAGE_VIEW_TYPE nType, void PARAM_IN PARAM_OUT** pOemImage, unsigned int PARAM_OUT &nWidth, unsigned int PARAM_OUT &nHeight);
  152. virtual RET_STATUS DEVICE_ACTION FetchFrame(IMAGE_VIEW_TYPE nType, unsigned long long &shareMemId);
  153. virtual RET_STATUS DEVICE_ACTION GetGainMode(unsigned int PARAM_OUT &GainMode);
  154. virtual RET_STATUS DEVICE_ACTION SetGainMode(unsigned int PARAM_IN GainMode);
  155. virtual RET_STATUS DEVICE_ACTION GetZoomMode(unsigned int PARAM_OUT &ZoomMode);
  156. virtual RET_STATUS DEVICE_ACTION SetZoomMode(unsigned int PARAM_IN ZoomMode);
  157. virtual RET_STATUS DEVICE_ACTION GetBinningMode(unsigned int PARAM_OUT &BinningMode);
  158. virtual RET_STATUS DEVICE_ACTION SetBinningMode(unsigned int PARAM_IN BinningMode);
  159. public:
  160. };