#pragma once #ifndef FPDCOMMCMDUNIT_EXPORTS #ifdef WIN_64BIT #ifdef _DEBUG #pragma comment(lib, "FPDCommCmdUnitX64D.lib") #else #pragma comment(lib, "FPDCommCmdUnitX64.lib") #endif #else #ifdef _DEBUG #pragma comment(lib, "FPDCommCmdUnitD.lib") #else #pragma comment(lib, "FPDCommCmdUnit.lib") #endif #endif #endif #define PARAM_IN_TYPE #ifdef FPDCOMMCMDUNIT_EXPORTS #define FPDCOMMCMDUNIT_API __declspec(dllexport) #else #define FPDCOMMCMDUNIT_API __declspec(dllimport) #endif #include"LogicDevice.h" #include"DIOSLogiceDeviceStructure.h" #include"ShareMemClientInterface.h" class FPDCOMMCMDUNIT_API FPDCommCmdUnit : public LogicDevice { private: BaseJsonDataObject m_AppMode; BaseJsonDataObject m_ExamMode; BaseJsonDataObject m_ImgId; ImgInfoDef m_FullImg; ImgInfoDef m_PreviewImg; WORD*m_pDataPtr; WORD *m_pImgBuffer; unsigned int m_DE_Seq_ExpCount; bool m_bReqImage; unsigned long long m_nFrameId; ImgDataInfo m_ImgDataInfo; CShareMemClient m_shareMemclient; C2DGrayImageData *m_pImgFull; C2DGrayImageData *m_pImgPrev; CBaseFunctionDataElement *m_pElement; unsigned long long m_dwShareMemId; char* m_chLog; public: FPDCommCmdUnit(void); virtual ~FPDCommCmdUnit(void); //get device type virtual bool SYSTEM_CALL GetDeviceType(GUID &DevType); //get device resource virtual RET_STATUS SYSTEM_CALL GetDeviceResource(ResDataObject PARAM_OUT *pDeviceResource); //ResourceCommand Request In and Response Out virtual RET_STATUS SYSTEM_CALL Request(ResDataObject PARAM_IN *pRequest, ResDataObject PARAM_OUT *pResponse); //notify to lower layer virtual RET_STATUS SYSTEM_CALL CmdToLogicDev(ResDataObject PARAM_IN *pCmd); //errors,warnings void SetErrorInfo(int errCode, char *pErrInfo); void SetWarningInfo(int warningCode, char *pWarningInfo); private://data层内部使用 int RegShareMem(); bool UnRegShareMem(); bool GetShareMemBuf( IMAGE_VIEW_TYPE eType, std::wstring strBufName, UINT32 nWidth, UINT32 nHeight, UINT32 nBit, UINT32 nFrameId); int WriteImageToShareMem(unsigned long long &dwShareMemId); bool SendImageInfo(IMAGE_VIEW_TYPE eType, unsigned long long dwShareMemId, unsigned long long nImageId); void LogInfo(string str); private://Data层实现,Owner bool Support_DTL_GetFullImgDimension(); bool Support_DTL_GetPreviewDimension(); bool Support_GetAppMode(); bool Support_SetAppMode(); bool Support_GetExamMode(); bool Support_SetExamMode(); bool Support_SetImgID(); bool Support_GetImgID(); bool Support_GetSEQResource(); bool Support_FramePostState(); bool Support_SeqPrepState(); RET_STATUS DATA_ACTION FramePostState(); RET_STATUS DATA_ACTION SeqPrepState(); RET_STATUS DATA_ACTION GetSEQResource(ResDataObject*res); RET_STATUS DATA_ACTION DTL_FetchFrame(IMAGE_VIEW_TYPE nType, void PARAM_IN PARAM_OUT** pImage , unsigned int PARAM_IN nWidth, unsigned int PARAM_IN nHeight, unsigned int PARAM_IN nBit); RET_STATUS DATA_ACTION DTL_GetFullImgDimension(ImgInfoDef PARAM_OUT& ImgSt); RET_STATUS DATA_ACTION DTL_GetPreviewDimension(ImgInfoDef PARAM_OUT&ImgSt); RET_STATUS DATA_ACTION GetAppMode(unsigned int PARAM_OUT&AppMode); RET_STATUS DATA_ACTION SetAppMode(unsigned int PARAM_IN AppMode); RET_STATUS DATA_ACTION GetExamMode(unsigned int PARAM_OUT&ExamMode); RET_STATUS DATA_ACTION SetExamMode(unsigned int PARAM_IN ExamMode); RET_STATUS DATA_ACTION SetImgID(unsigned long long PARAM_IN ImgId); RET_STATUS DATA_ACTION GetImgID(unsigned long long PARAM_IN &ImgId); //public://OEM使用 /*virtual bool Support_SetFullImgInfo(); virtual bool Support_SetPreviewImgInfo(); virtual RET_STATUS DATA_ACTION SetFullImgInfo(unsigned int PARAM_IN nWidth, unsigned int PARAM_IN nHeight, unsigned int PARAM_IN nBit); virtual RET_STATUS DATA_ACTION SetPreviewImgInfo(unsigned int PARAM_IN nWidth, unsigned int PARAM_IN nHeight, unsigned int PARAM_IN nBit);*/ public://OEM重写,需要调用基类对应的函数 virtual bool DATA_ACTION Support_GetFullImgDimension(); virtual bool DATA_ACTION Support_GetPreviewDimension(); virtual bool DEVICE_SUPPORT Support_GetFrame(); virtual bool DEVICE_SUPPORT Support_FetchFrame(); virtual bool DEVICE_SUPPORT Support_ImageNotify(); virtual bool DEVICE_SUPPORT Support_Preview(); virtual RET_STATUS DATA_ACTION ImageNotify(IMAGE_VIEW_TYPE nType); virtual RET_STATUS DATA_ACTION GetFullImgDimension(unsigned int PARAM_OUT &nWidth, unsigned int PARAM_OUT &nHeight, unsigned int PARAM_OUT &nBit); virtual RET_STATUS DATA_ACTION GetPreviewDimension(unsigned int PARAM_OUT &nWidth, unsigned int PARAM_OUT &nHeight, unsigned int PARAM_OUT &nBit); 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); 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); };