工業相機採集幀回撥函式
阿新 • • 發佈:2018-12-27
下面是一個工業相機採集的幀回撥定義:
被呼叫者定義如下:
//定義回撥 一般定義成巨集 typedef void (__stdcall *STREAM_PROC)(unsigned char* buff, void* pUserData); class camera { private: STREAM_PROC m_pStreamProc; void* m_pUserPtr; void onGetFrame(const GenICam::CFrame& frame) //回撥的函式 { if(NULL != m_pStreamProc) { m_pStreamProc(m_pBuff, m_pUserPtr); } } public: bool SetStreamHook(STREAM_PROC proc, void*) // 使用該函式設定設定回撥 { if(NULL != m_pStreamProc) { return FALSE; } m_pStreamProc = proc; m_pUserPtr = pObj; return TRUE; }
//定義呼叫者: void CALLBACK CCDCallBack1(unsigned char* lpParam, void* pUserData); STREAM_PROC proc = (STREAM_PROC)CCDCallBack1; camera m_camera; m_camera.SetStreamHook(proc, (void*)this);//呼叫介面 //要回調的函式 定義全域性或者類中的靜態成員函式 void CALLBACK CCDCallBack1(unsigned char* lpParam, void* lpUser) { BYTE *pDataBuffer = (BYTE*)lpParam; CCCDCtrl *ccd = (CCCDCtrl*)lpUser; //..省略 }