334 lines
16 KiB
C
334 lines
16 KiB
C
#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_
|