FPDCommCmdUnit.h 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. #pragma once
  2. #ifndef FPDCOMMCMDUNIT_EXPORTS
  3. #ifdef WIN_64BIT
  4. #ifdef _DEBUG
  5. #pragma comment(lib, "FPDCommCmdUnitX64D.lib")
  6. #else
  7. #pragma comment(lib, "FPDCommCmdUnitX64.lib")
  8. #endif
  9. #else
  10. #ifdef _DEBUG
  11. #pragma comment(lib, "FPDCommCmdUnitD.lib")
  12. #else
  13. #pragma comment(lib, "FPDCommCmdUnit.lib")
  14. #endif
  15. #endif
  16. #endif
  17. #define PARAM_IN_TYPE
  18. #ifdef FPDCOMMCMDUNIT_EXPORTS
  19. #define FPDCOMMCMDUNIT_API __declspec(dllexport)
  20. #else
  21. #define FPDCOMMCMDUNIT_API __declspec(dllimport)
  22. #endif
  23. #include"LogicDevice.h"
  24. #include"DIOSLogiceDeviceStructure.h"
  25. #include"ShareMemClientInterface.h"
  26. class FPDCOMMCMDUNIT_API FPDCommCmdUnit : public LogicDevice
  27. {
  28. private:
  29. BaseJsonDataObject<unsigned int> m_AppMode;
  30. BaseJsonDataObject<unsigned int> m_ExamMode;
  31. BaseJsonDataObject<unsigned long long> m_ImgId;
  32. ImgInfoDef m_FullImg;
  33. ImgInfoDef m_PreviewImg;
  34. WORD*m_pDataPtr;
  35. WORD *m_pImgBuffer;
  36. unsigned int m_DE_Seq_ExpCount;
  37. bool m_bReqImage;
  38. unsigned long long m_nFrameId;
  39. ImgDataInfo m_ImgDataInfo;
  40. CShareMemClient m_shareMemclient;
  41. C2DGrayImageData *m_pImgFull;
  42. C2DGrayImageData *m_pImgPrev;
  43. CBaseFunctionDataElement *m_pElement;
  44. unsigned long long m_dwShareMemId;
  45. char* m_chLog;
  46. public:
  47. FPDCommCmdUnit(void);
  48. virtual ~FPDCommCmdUnit(void);
  49. //get device type
  50. virtual bool SYSTEM_CALL GetDeviceType(GUID &DevType);
  51. //get device resource
  52. virtual RET_STATUS SYSTEM_CALL GetDeviceResource(ResDataObject PARAM_OUT *pDeviceResource);
  53. //ResourceCommand Request In and Response Out
  54. virtual RET_STATUS SYSTEM_CALL Request(ResDataObject PARAM_IN *pRequest, ResDataObject PARAM_OUT *pResponse);
  55. //notify to lower layer
  56. virtual RET_STATUS SYSTEM_CALL CmdToLogicDev(ResDataObject PARAM_IN *pCmd);
  57. //errors,warnings
  58. void SetErrorInfo(int errCode, char *pErrInfo);
  59. void SetWarningInfo(int warningCode, char *pWarningInfo);
  60. private://data层内部使用
  61. int RegShareMem();
  62. bool UnRegShareMem();
  63. bool GetShareMemBuf( IMAGE_VIEW_TYPE eType, std::wstring strBufName, UINT32 nWidth, UINT32 nHeight, UINT32 nBit, UINT32 nFrameId);
  64. int WriteImageToShareMem(unsigned long long &dwShareMemId);
  65. bool SendImageInfo(IMAGE_VIEW_TYPE eType, unsigned long long dwShareMemId, unsigned long long nImageId);
  66. void LogInfo(string str);
  67. private://Data层实现,Owner
  68. bool Support_DTL_GetFullImgDimension();
  69. bool Support_DTL_GetPreviewDimension();
  70. bool Support_GetAppMode();
  71. bool Support_SetAppMode();
  72. bool Support_GetExamMode();
  73. bool Support_SetExamMode();
  74. bool Support_SetImgID();
  75. bool Support_GetImgID();
  76. bool Support_GetSEQResource();
  77. bool Support_FramePostState();
  78. bool Support_SeqPrepState();
  79. RET_STATUS DATA_ACTION FramePostState();
  80. RET_STATUS DATA_ACTION SeqPrepState();
  81. RET_STATUS DATA_ACTION GetSEQResource(ResDataObject*res);
  82. RET_STATUS DATA_ACTION DTL_FetchFrame(IMAGE_VIEW_TYPE nType, void PARAM_IN PARAM_OUT** pImage
  83. , unsigned int PARAM_IN nWidth, unsigned int PARAM_IN nHeight, unsigned int PARAM_IN nBit);
  84. RET_STATUS DATA_ACTION DTL_GetFullImgDimension(ImgInfoDef PARAM_OUT& ImgSt);
  85. RET_STATUS DATA_ACTION DTL_GetPreviewDimension(ImgInfoDef PARAM_OUT&ImgSt);
  86. RET_STATUS DATA_ACTION GetAppMode(unsigned int PARAM_OUT&AppMode);
  87. RET_STATUS DATA_ACTION SetAppMode(unsigned int PARAM_IN AppMode);
  88. RET_STATUS DATA_ACTION GetExamMode(unsigned int PARAM_OUT&ExamMode);
  89. RET_STATUS DATA_ACTION SetExamMode(unsigned int PARAM_IN ExamMode);
  90. RET_STATUS DATA_ACTION SetImgID(unsigned long long PARAM_IN ImgId);
  91. RET_STATUS DATA_ACTION GetImgID(unsigned long long PARAM_IN &ImgId);
  92. //public://OEM使用
  93. /*virtual bool Support_SetFullImgInfo();
  94. virtual bool Support_SetPreviewImgInfo();
  95. virtual RET_STATUS DATA_ACTION SetFullImgInfo(unsigned int PARAM_IN nWidth, unsigned int PARAM_IN nHeight, unsigned int PARAM_IN nBit);
  96. virtual RET_STATUS DATA_ACTION SetPreviewImgInfo(unsigned int PARAM_IN nWidth, unsigned int PARAM_IN nHeight, unsigned int PARAM_IN nBit);*/
  97. public://OEM重写,需要调用基类对应的函数
  98. virtual bool DATA_ACTION Support_GetFullImgDimension();
  99. virtual bool DATA_ACTION Support_GetPreviewDimension();
  100. virtual bool DEVICE_SUPPORT Support_GetFrame();
  101. virtual bool DEVICE_SUPPORT Support_FetchFrame();
  102. virtual bool DEVICE_SUPPORT Support_ImageNotify();
  103. virtual bool DEVICE_SUPPORT Support_Preview();
  104. virtual RET_STATUS DATA_ACTION ImageNotify(IMAGE_VIEW_TYPE nType);
  105. virtual RET_STATUS DATA_ACTION GetFullImgDimension(unsigned int PARAM_OUT &nWidth, unsigned int PARAM_OUT &nHeight, unsigned int PARAM_OUT &nBit);
  106. virtual RET_STATUS DATA_ACTION GetPreviewDimension(unsigned int PARAM_OUT &nWidth, unsigned int PARAM_OUT &nHeight, unsigned int PARAM_OUT &nBit);
  107. 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);
  108. 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);
  109. };