123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334 |
- #ifndef _MV_CAMERA_GRABBER_H_
- #define _MV_CAMERA_GRABBER_H_
- #include "CameraDefine.h"
- #include "CameraStatus.h"
- /// @ingroup GRABBER_CREATE
- /// \~chinese
- /// \brief 弹出相机列表让用户选择要打开的相机
- /// \param [out] Grabber 返回新创建的采集器
- /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
- /// \note 本函数内部使用了 @link CameraInit @endlink 打开相机,因此可以使用 @link CameraGrabber_GetCameraHandle @endlink 获取相机句柄,进而使用其他SDK API来操作相机。
- /// \~english
- /// \brief Pop-up camera list allows the user to select the camera to open
- /// \param [out] Grabber returns newly created grabber
- /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
- /// \note This function uses @link CameraInit @endlink internally to open the camera, so you can use @link CameraGrabber_GetCameraHandle @endlink to get the camera handle and use other SDK APIs to operate the camera.
- MVSDK_API CameraSdkStatus __stdcall CameraGrabber_CreateFromDevicePage(
- void** Grabber
- );
- /// @ingroup GRABBER_CREATE
- /// \~chinese
- /// \brief 使用相机列表索引创建Grabber
- /// \param [out] Grabber 返回新创建的采集器
- /// \param [in] Index 相机索引
- /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
- /// \note 本函数内部使用了 @link CameraInit @endlink 打开相机,因此可以使用 @link CameraGrabber_GetCameraHandle @endlink 获取相机句柄,进而使用其他SDK API来操作相机。
- /// \~english
- /// \brief Creating a Grabber Using a Camera List Index
- /// \param [out] Grabber returns newly created grabber
- /// \param [in] Index Camera index
- /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
- /// \note This function uses @link CameraInit @endlink internally to open the camera, so you can use @link CameraGrabber_GetCameraHandle @endlink to get the camera handle and use other SDK APIs to operate the camera.
- MVSDK_API CameraSdkStatus __stdcall CameraGrabber_CreateByIndex(
- void** Grabber,
- int Index
- );
- /// @ingroup GRABBER_CREATE
- /// \~chinese
- /// \brief 使用相机名称创建Grabber
- /// \param [out] Grabber 返回新创建的采集器
- /// \param [in] Name 相机名称。@link #tSdkCameraDevInfo.acFriendlyName @endlink
- /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
- /// \note 本函数内部使用了 @link CameraInit @endlink 打开相机,因此可以使用 @link CameraGrabber_GetCameraHandle @endlink 获取相机句柄,进而使用其他SDK API来操作相机。
- /// \~english
- /// \brief Create a Grabber with a Camera Name
- /// \param [out] Grabber returns newly created grabber
- /// \param [in] Name Camera name.@link #tSdkCameraDevInfo.acFriendlyName @endlink
- /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
- /// \note This function uses @link CameraInit @endlink internally to open the camera, so you can use @link CameraGrabber_GetCameraHandle @endlink to get the camera handle and use other SDK APIs to operate the camera.
- MVSDK_API CameraSdkStatus __stdcall CameraGrabber_CreateByName(
- void** Grabber,
- char* Name
- );
- /// @ingroup GRABBER_CREATE
- /// \~chinese
- /// \brief 从设备信息创建Grabber
- /// \param [out] Grabber 返回新创建的采集器
- /// \param [in] pDevInfo 设备信息。@link #CameraEnumerateDevice @endlink
- /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
- /// \note 本函数内部使用了 @link CameraInit @endlink 打开相机,因此可以使用 @link CameraGrabber_GetCameraHandle @endlink 获取相机句柄,进而使用其他SDK API来操作相机。
- /// \~english
- /// \brief Create Grabber from device info
- /// \param [out] Grabber returns newly created grabber
- /// \param [in] pDevInfo device information. @link #CameraEnumerateDevice @endlink
- /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
- /// \note This function uses @link CameraInit @endlink internally to open the camera, so you can use @link CameraGrabber_GetCameraHandle @endlink to get the camera handle and use other SDK APIs to operate the camera.
- MVSDK_API CameraSdkStatus __stdcall CameraGrabber_Create(
- void** Grabber,
- tSdkCameraDevInfo* pDevInfo
- );
- /// @ingroup GRABBER_DESTROY
- /// \~chinese
- /// \brief 销毁Grabber
- /// \param [in] Grabber 采集器
- /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
- /// \~english
- /// \brief Destroy Grabber
- /// \param [in] Grabber
- /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
- MVSDK_API CameraSdkStatus __stdcall CameraGrabber_Destroy(
- void* Grabber
- );
- /// @ingroup GRABBER_CTRL
- /// \~chinese
- /// \brief 设置预览视频的显示窗口
- /// \param [in] Grabber 采集器
- /// \param [in] hWnd 显示窗口的窗口句柄
- /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
- /// \~english
- /// \brief Set the preview video display window
- /// \param [in] Grabber
- /// \param [in] hWnd window handle of the display window
- /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
- MVSDK_API CameraSdkStatus __stdcall CameraGrabber_SetHWnd(
- void* Grabber,
- HWND hWnd
- );
- /// @ingroup GRABBER_CTRL
- /// \~chinese
- /// \brief 设置Grabber取图时使用的优先级
- /// \param [in] Grabber 采集器
- /// \param [in] Priority 取图优先级 详见:@link #emCameraGetImagePriority @endlink
- /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
- /// \~english
- /// \brief Sets the priority used by Grabber when fetching graphs
- /// \param [in] Grabber
- /// \param [in] Priority GetImageBuffer priority, For details see: @link #emCameraGetImagePriority @endlink
- /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
- MVSDK_API CameraSdkStatus __stdcall CameraGrabber_SetPriority(
- void* Grabber,
- UINT Priority
- );
- /// @ingroup GRABBER_CTRL
- /// \~chinese
- /// \brief 开始采集
- /// \param [in] Grabber 采集器
- /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
- /// \note Grabber必须进入采集状态,采集回调、抓图等功能才能正常运作
- /// \~english
- /// \brief Start Grabber
- /// \param [in] Grabber
- /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
- /// \note Grabber must enter the acquisition state, grab callbacks, snapshot and other functions in order to function properly
- MVSDK_API CameraSdkStatus __stdcall CameraGrabber_StartLive(
- void* Grabber
- );
- /// @ingroup GRABBER_CTRL
- /// \~chinese
- /// \brief 停止采集
- /// \param [in] Grabber 采集器
- /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
- /// \warning 本函数内部会等待所有回调函数结束后才返回调用者,并且在等待时会派发windows消息。
- /// \~english
- /// \brief Stop Grabber
- /// \param [in] Grabber
- /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
- /// \warning This function will wait for all callbacks to end before returning to the caller,And it will dispatch windows messages while waiting.
- MVSDK_API CameraSdkStatus __stdcall CameraGrabber_StopLive(
- void* Grabber
- );
- /// @ingroup GRABBER_SNAPSHOT
- /// \~chinese
- /// \brief 同步抓图
- /// \param [in] Grabber 采集器
- /// \param [out] Image 返回抓取到的图像 \note 需要调用@link #CameraImage_Destroy @endlink释放
- /// \param [in] TimeOut 超时时间(毫秒)
- /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
- /// \~english
- /// \brief Synchronized snapshot
- /// \param [in] Grabber
- /// \param [out] Image Returns Captured Image \note Need to Call @link #CameraImage_Destroy @endlink Release
- /// \param [in] TimeOut Timeout (milliseconds)
- /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
- MVSDK_API CameraSdkStatus __stdcall CameraGrabber_SaveImage(
- void* Grabber,
- void** Image,
- DWORD TimeOut
- );
- /// @ingroup GRABBER_SNAPSHOT
- /// \~chinese
- /// \brief 提交一个异步的抓图请求,提交成功后待抓图完成会回调用户设置的完成函数
- /// \param [in] Grabber 采集器
- /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
- /// \see CameraGrabber_SetSaveImageCompleteCallback
- /// \~english
- /// \brief Submit an asynchronous snapshot request, complete the user's completion function after the completion of the submission.
- /// \param [in] Grabber
- /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
- /// \see CameraGrabber_SetSaveImageCompleteCallback
- MVSDK_API CameraSdkStatus __stdcall CameraGrabber_SaveImageAsync(
- void* Grabber
- );
- /// @ingroup GRABBER_SNAPSHOT
- /// \~chinese
- /// \brief 提交一个异步的抓图请求,提交成功后待抓图完成会回调用户设置的完成函数
- /// \param [in] Grabber 采集器
- /// \param [in] UserData 用户数据,可使用 @link CameraImage_GetUserData @endlink 从Image获取此值
- /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
- /// \see CameraGrabber_SetSaveImageCompleteCallback
- /// \~english
- /// \brief Submit an asynchronous snapshot request, complete the user's completion function after the completion of the submission.
- /// \param [in] Grabber
- /// \param [in] UserData user data, which can be obtained from Image using @link CameraImage_GetUserData @endlink
- /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
- /// \see CameraGrabber_SetSaveImageCompleteCallback
- MVSDK_API CameraSdkStatus __stdcall CameraGrabber_SaveImageAsyncEx(
- void* Grabber,
- void* UserData
- );
- /// @ingroup GRABBER_SNAPSHOT
- /// \~chinese
- /// \brief 设置异步方式抓图的完成函数
- /// \param [in] Grabber 采集器
- /// \param [in] Callback 当异步抓图任务完成时被调用
- /// \param [in] Context 当Callback被调用时,作为参数传入Callback
- /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
- /// \see CameraGrabber_SaveImageAsync CameraGrabber_SaveImageAsyncEx
- /// \~english
- /// \brief Set the completion function of asynchronous mode snapshot
- /// \param [in] Grabber
- /// \param [in] Callback Callback is called when the asynchronous snapshot task completes
- /// \param [in] Context Passed as a parameter when the Callback is invoked
- /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
- /// \see CameraGrabber_SaveImageAsync CameraGrabber_SaveImageAsyncEx
- MVSDK_API CameraSdkStatus __stdcall CameraGrabber_SetSaveImageCompleteCallback(
- void* Grabber,
- pfnCameraGrabberSaveImageComplete Callback,
- void* Context
- );
- /// @ingroup GRABBER_CB
- /// \~chinese
- /// \brief 设置帧监听函数
- /// \param [in] Grabber 采集器
- /// \param [in] Listener 监听函数
- /// \param [in] Context 当Listener被调用时,作为参数传入Listener
- /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
- /// \~english
- /// \brief Set frame listening function
- /// \param [in] Grabber
- /// \param [in] Listener listener function
- /// \param [in] Context Passed as a parameter when the Listener is invoked
- /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
- MVSDK_API CameraSdkStatus __stdcall CameraGrabber_SetFrameListener(
- void* Grabber,
- pfnCameraGrabberFrameListener Listener,
- void* Context
- );
- /// @ingroup GRABBER_CB
- /// \~chinese
- /// \brief 设置RAW数据回调函数
- /// \param [in] Grabber 采集器
- /// \param [in] Callback Raw回调函数
- /// \param [in] Context 当Callback被调用时,作为参数传入Callback
- /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
- /// \~english
- /// \brief Set RAW data callback function
- /// \param [in] Grabber
- /// \param [in] Callback Raw data callback function
- /// \param [in] Context Passed as a parameter when the Callback is invoked
- /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
- MVSDK_API CameraSdkStatus __stdcall CameraGrabber_SetRawCallback(
- void* Grabber,
- pfnCameraGrabberFrameCallback Callback,
- void* Context
- );
- /// @ingroup GRABBER_CB
- /// \~chinese
- /// \brief 设置RGB回调函数
- /// \param [in] Grabber 采集器
- /// \param [in] Callback RGB回调函数
- /// \param [in] Context 当Callback被调用时,作为参数传入Callback
- /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
- /// \~english
- /// \brief Set RGB callback function
- /// \param [in] Grabber
- /// \param [in] Callback RGB data callback function
- /// \param [in] Context Passed as a parameter when the Callback is invoked
- /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
- MVSDK_API CameraSdkStatus __stdcall CameraGrabber_SetRGBCallback(
- void* Grabber,
- pfnCameraGrabberFrameCallback Callback,
- void* Context
- );
- /// @ingroup GRABBER_CTRL
- /// \~chinese
- /// \brief 获取相机句柄
- /// \param [in] Grabber 采集器
- /// \param [out] hCamera 返回的相机句柄
- /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
- /// \~english
- /// \brief Get camera handle
- /// \param [in] Grabber
- /// \param [out] hCamera returned camera handle
- /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
- MVSDK_API CameraSdkStatus __stdcall CameraGrabber_GetCameraHandle(
- void* Grabber,
- CameraHandle *hCamera
- );
- /// @ingroup GRABBER_CTRL
- /// \~chinese
- /// \brief 获取帧统计信息
- /// \param [in] Grabber 采集器
- /// \param [out] stat 返回的统计信息
- /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
- /// \~english
- /// \brief Get frame statistics
- /// \param [in] Grabber
- /// \param [out] stat returned statistics
- /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
- MVSDK_API CameraSdkStatus __stdcall CameraGrabber_GetStat(
- void* Grabber,
- tSdkGrabberStat *stat
- );
- /// @ingroup GRABBER_CTRL
- /// \~chinese
- /// \brief 获取相机DevInfo
- /// \param [in] Grabber 采集器
- /// \param [out] DevInfo 返回的相机DevInfo
- /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
- /// \~english
- /// \brief Get Camera DevInfo
- /// \param [in] Grabber
- /// \param [out] DevInfo Returns Camera DevInfo
- /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
- MVSDK_API CameraSdkStatus __stdcall CameraGrabber_GetCameraDevInfo(
- void* Grabber,
- tSdkCameraDevInfo *DevInfo
- );
- #endif // _MV_CAMERA_GRABBER_H_
|