From 0ecd4a0ec8c4c5585cbd8975d7786c5618814381 Mon Sep 17 00:00:00 2001
From: Junjie <DELL@qq.com>
Date: 星期三, 03 十二月 2025 08:28:59 +0800
Subject: [PATCH] #
---
MvImport/MvCameraControl_class.py | 3221 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 3,221 insertions(+), 0 deletions(-)
diff --git a/MvImport/MvCameraControl_class.py b/MvImport/MvCameraControl_class.py
new file mode 100644
index 0000000..13021c8
--- /dev/null
+++ b/MvImport/MvCameraControl_class.py
@@ -0,0 +1,3221 @@
+# -*- coding: utf-8 -*-
+
+import sys
+import platform
+import os
+import copy
+import ctypes
+
+from ctypes import *
+
+from PixelType_header import *
+from CameraParams_const import *
+from CameraParams_header import *
+from MvErrorDefine_const import *
+
+
+# 鏍规嵁骞冲彴璁剧疆璋冪敤绾﹀畾
+def get_platform_functype():
+ if platform.system() == 'Windows':
+ # 32浣峎indows浣跨敤WINFUNCTYPE锛�64浣嶄娇鐢–FUNCTYPE
+ if sys.maxsize <= 2**32:
+ return WINFUNCTYPE
+ else:
+ return CFUNCTYPE
+ else:
+ return CFUNCTYPE
+
+
+def check_sys_and_update_dll():
+ # 灏咲LL鎵�鍦ㄧ洰褰曟坊鍔犲埌鎼滅储璺緞
+ os.add_dll_directory(r"D:\hikenv")
+
+ global MvCamCtrldll
+ max_size = sys.maxsize
+ bit_info =""
+ if max_size > 2**32:
+ bit_info = "64"
+ else:
+ bit_info = "32"
+
+ MvCamCtrldllPath = ""
+ currentsystem = platform.system()
+
+ if currentsystem == 'Windows':
+ #print(" current is windows system .")
+ MvCamCtrldllPath = r"C:\Program Files (x86)\Common Files\MVS\Runtime\Win64_x64\MvCameraControl.dll"
+ if "winmode" in ctypes.WinDLL.__init__.__code__.co_varnames:
+ MvCamCtrldll = CDLL(MvCamCtrldllPath)
+ else:
+ MvCamCtrldll = WinDLL(MvCamCtrldllPath)
+ else:
+ architecture = platform.machine()
+ if architecture == 'aarch64':
+ MvCamCtrldllPath = os.getenv('MVCAM_COMMON_RUNENV') + "/aarch64/libMvCameraControl.so"
+ elif architecture == 'x86_64':
+ if bit_info == "32":
+ MvCamCtrldllPath = os.getenv('MVCAM_COMMON_RUNENV') + "/32/libMvCameraControl.so"
+ else:
+ MvCamCtrldllPath = os.getenv('MVCAM_COMMON_RUNENV') + "/64/libMvCameraControl.so"
+ elif architecture == 'arm-none':
+ MvCamCtrldllPath = os.getenv('MVCAM_COMMON_RUNENV') + "/arm-none/libMvCameraControl.so"
+ elif architecture == 'armhf':
+ MvCamCtrldllPath = os.getenv('MVCAM_COMMON_RUNENV') + "/armhf/libMvCameraControl.so"
+ elif architecture == 'armv6l':
+ MvCamCtrldllPath = os.getenv('MVCAM_COMMON_RUNENV') + "/armhf/libMvCameraControl.so"
+ elif architecture == 'armv7l':
+ MvCamCtrldllPath = os.getenv('MVCAM_COMMON_RUNENV') + "/armhf/libMvCameraControl.so"
+ elif architecture == 'i386':
+ MvCamCtrldllPath = os.getenv('MVCAM_COMMON_RUNENV') + "/32/libMvCameraControl.so"
+ elif architecture == 'i686':
+ MvCamCtrldllPath = os.getenv('MVCAM_COMMON_RUNENV') + "/32/libMvCameraControl.so"
+ else:
+ print ("machine: %s, not support." % architecture)
+
+ MvCamCtrldll = ctypes.cdll.LoadLibrary(MvCamCtrldllPath)
+
+
+#妫�娴嬬郴缁燂紝骞跺姞杞絪dk搴�
+check_sys_and_update_dll()
+
+
+
+# 鐢ㄤ簬鍥炶皟鍑芥暟浼犲叆鐩告満瀹炰緥
+class _MV_PY_OBJECT_(Structure):
+ pass
+
+
+_MV_PY_OBJECT_._fields_ = [
+ ('PyObject', py_object),
+]
+MV_PY_OBJECT = _MV_PY_OBJECT_
+
+
+class MvCamera():
+
+ def __init__(self):
+ self._handle = c_void_p() # 璁板綍褰撳墠杩炴帴璁惧鐨勫彞鏌�
+ self.handle = pointer(self._handle) # 鍒涘缓鍙ユ焺鎸囬拡
+
+
+ ## @addtogroup SDK 鍒濆鍖� | en: SDK Initialization
+ ## @{
+
+ ##
+ # @~chinese
+ # @brief 鍒濆鍖朣DK
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+
+ # @~english
+ # @brief Initialize SDK
+ # @return Success, return MV_OK. Failure, return error code
+ @staticmethod
+ def MV_CC_Initialize():
+ MvCamCtrldll.MV_CC_Initialize.restype = c_int
+ return MvCamCtrldll.MV_CC_Initialize()
+
+ ##
+ # @~chinese
+ # @brief 鍙嶅垵濮嬪寲SDK锛岄噴鏀捐祫婧�
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks main鍑芥暟閫�鍑哄墠璋冪敤
+
+ # @~english
+ # @brief Terminate SDK
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks Called before the main function exits
+ @staticmethod
+ def MV_CC_Finalize():
+ MvCamCtrldll.MV_CC_Finalize.restype = c_int
+ return MvCamCtrldll.MV_CC_Finalize()
+
+ ##
+ # @~chinese
+ # @brief 鑾峰彇SDK鐗堟湰鍙�
+ # @return 杩斿洖4瀛楄妭鐗堟湰鍙�
+ # |涓� |娆� |淇 | 娴嬭瘯|
+ # 8bits 8bits 8bits 8bits
+ # @remarks 姣斿杩斿洖鍊间负0x01000001锛屽嵆SDK鐗堟湰鍙蜂负V1.0.0.1銆�
+
+ # @~english
+ # @brief Get SDK Version
+ # @return Always return 4 Bytes of version number
+ # |Main |Sub |Rev | Test|
+ # 8bits 8bits 8bits 8bits
+ # @remarks For example, if the return value is 0x01000001, the SDK version is V1.0.0.1.
+ @staticmethod
+ def MV_CC_GetSDKVersion():
+ MvCamCtrldll.MV_CC_GetSDKVersion.restype = c_uint
+ return MvCamCtrldll.MV_CC_GetSDKVersion()
+ ## @}
+
+
+
+ ## @addtogroup ch: 鐩告満鐨勬帶鍒跺拰鍙栨祦鎺ュ彛 | en: Camera control and streaming
+ ## @{
+
+
+ ##
+ # @~chinese
+ # @brief 鏋氫妇璁惧
+ # @param nTLayerType [IN] 鏋氫妇浼犺緭灞�, 鍙傛暟瀹氫箟鍙傝CameraParams.h瀹氫箟, 濡�: #define MV_GIGE_DEVICE 0x00000001 GigE璁惧
+ # @param pstDevList [IN][OUT] 璁惧鍒楄〃
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璁惧鍒楄〃鐨勫唴瀛樻槸鍦⊿DK鍐呴儴鍒嗛厤鐨勶紝澶氱嚎绋嬭皟鐢ㄨ鎺ュ彛鏃朵細杩涜璁惧鍒楄〃鍐呭瓨鐨勯噴鏀惧拰鐢宠,寤鸿灏介噺閬垮厤澶氱嚎绋嬫灇涓炬搷浣溿��
+ # @remarks 鍙傛暟鏋氫妇浼犺緭灞傦紝閫傞厤浼犲叆MV_GIGE_DEVICE銆丮V_1394_DEVICE銆丮V_USB_DEVICE銆丮V_CAMERALINK_DEVICE锛汳V_GIGE_DEVICE璇ュ弬鏁�
+ # 浼犲嚭鎵�鏈塆iGE鐩稿叧鐨勮澶囦俊鎭紙鍖呭惈铏氭嫙GiGE鍜孏enTL涓嬬殑GiGE璁惧锛夛紝MV_USB_DEVICE璇ュ弬鏁颁紶鍑烘墍鏈塙SB璁惧锛屽寘鍚櫄鎷烾SB璁惧銆�
+
+ # @~english
+ # @brief Enumerate Device
+ # @param nTLayerType [IN] Enumerate TLs, Refer to the 'CameraParams.h' for parameter definitions, for example, #define MV_GIGE_DEVICE 0x00000001
+ # @param pstDevList [IN][OUT] Device List
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks The memory of the device list is allocated within the SDK. When the interface is invoked by multiple threads, the memory of the device list will be released and applied
+ # It is recommended to avoid multithreaded enumeration operations as much as possible.
+ # @remarks Transmission layer of enumeration, param only include MV_GIGE_DEVICE銆丮V_1394_DEVICE銆丮V_USB_DEVICE銆丮V_CAMERALINK_DEVICE;
+ # MV_GIGE_DEVICE can output virtual and GenTL GiGE devices, MV_USB_DEVICE can output all USB devices, include virtual usb devices.
+ @staticmethod
+ def MV_CC_EnumDevices(nTLayerType, stDevList):
+ MvCamCtrldll.MV_CC_EnumDevices.argtype = (c_uint, c_void_p)
+ MvCamCtrldll.MV_CC_EnumDevices.restype = c_uint
+ return MvCamCtrldll.MV_CC_EnumDevices(c_uint(nTLayerType), byref(stDevList))
+
+ ##
+ # @~chinese
+ # @brief 鏍规嵁鍘傚晢鍚嶅瓧鏋氫妇璁惧
+ # @param nTLayerType [IN] 鏋氫妇浼犺緭灞�, 鍙傛暟瀹氫箟鍙傝CameraParams.h瀹氫箟, 濡�: #define MV_GIGE_DEVICE 0x00000001 GigE璁惧
+ # @param pstDevList [IN][OUT] 璁惧鍒楄〃
+ # @param strManufacturerName [IN] 鍘傚晢鍚嶅瓧
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 鍙傛暟鏋氫妇浼犺緭灞傦紝閫傞厤浼犲叆MV_GIGE_DEVICE銆丮V_1394_DEVICE銆丮V_USB_DEVICE銆丮V_CAMERALINK_DEVICE锛汳V_GIGE_DEVICE璇ュ弬鏁�
+ # 浼犲嚭鎵�鏈塆iGE鐩稿叧鐨勮澶囦俊鎭紙鍖呭惈铏氭嫙GiGE鍜孏enTL涓嬬殑GiGE璁惧锛夛紝MV_USB_DEVICE璇ュ弬鏁颁紶鍑烘墍鏈塙SB璁惧锛屽寘鍚櫄鎷烾SB璁惧銆�
+ # @remarks 璁惧鍒楄〃鐨勫唴瀛樻槸鍦⊿DK鍐呴儴鍒嗛厤鐨勶紝澶氱嚎绋嬭皟鐢ㄨ鎺ュ彛鏃朵細杩涜璁惧鍒楄〃鍐呭瓨鐨勯噴鏀惧拰鐢宠,寤鸿灏介噺閬垮厤澶氱嚎绋嬫灇涓炬搷浣溿��
+
+ # @~english
+ # @brief Enumerate device according to manufacture name
+ # @param nTLayerType [IN] Transmission layer of enumeration, , Refer to the 'CameraParams.h' for parameter definitions, for example, #define MV_GIGE_DEVICE 0x00000001
+ # @param pstDevList [IN][OUT] Device list
+ # @param strManufacturerName [IN] Manufacture Name
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks Transmission layer of enumeration, param only include MV_GIGE_DEVICE銆丮V_1394_DEVICE銆丮V_USB_DEVICE銆丮V_CAMERALINK_DEVICE;
+ # MV_GIGE_DEVICE can output virtual and GenTL GiGE devices, MV_USB_DEVICE can output all USB devices, include virtual usb devices.
+ # @remarks The memory of the device list is allocated within the SDK. When the interface is invoked by multiple threads, the memory of the device list will be released and applied.
+ # It is recommended to avoid multithreaded enumeration operations as much as possible.
+
+ @staticmethod
+ def MV_CC_EnumDevicesEx(nTLayerType, stDevList, strManufacturerName):
+ MvCamCtrldll.MV_CC_EnumDevicesEx.argtype = (c_uint, c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_EnumDevicesEx.restype = c_uint
+ return MvCamCtrldll.MV_CC_EnumDevicesEx(c_uint(nTLayerType), byref(stDevList),
+ strManufacturerName.encode('ascii'))
+
+
+ ##
+ # @~chinese
+ # @brief 鏋氫妇璁惧鎵╁睍锛堝彲鎸囧畾鎺掑簭鏂瑰紡鏋氫妇銆佹牴鎹巶鍟嗗悕瀛楄繃婊わ級
+ # @param nTLayerType [IN] 鏋氫妇浼犺緭灞傦紙鍖哄垎姣忎竴绉嶄紶杈撳眰绫诲瀷锛屼笉鑰﹀悎锛�, 鍙傛暟瀹氫箟鍙傝CameraParams.h瀹氫箟, 濡�: #define MV_GIGE_DEVICE 0x00000001 GigE璁惧
+ # @param pstDevList [IN][OUT] 璁惧鍒楄〃
+ # @param strManufacturerName [IN] 鍘傚晢鍚嶅瓧锛堝彲浼燦ULL锛屽嵆涓嶈繃婊わ級
+ # @param enSortMethod [IN] 鎺掑簭鏂瑰紡
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璁惧鍒楄〃鐨勫唴瀛樻槸鍦⊿DK鍐呴儴鍒嗛厤鐨勶紝澶氱嚎绋嬭皟鐢ㄨ鎺ュ彛鏃朵細杩涜璁惧鍒楄〃鍐呭瓨鐨勯噴鏀惧拰鐢宠,寤鸿灏介噺閬垮厤澶氱嚎绋嬫灇涓炬搷浣�
+ # strManufacturerName鍙紶鍏ULL锛岃嫢浼犲叆NULL鍒欒繑鍥炴帓濂藉簭鐨勬墍鏈夎澶囧垪琛�,鑻ヤ笉涓篘ULL鍒欏彧杩斿洖鎺掑ソ搴忕殑鎸囧畾鍘傚晢璁惧鍒楄〃銆�
+
+ # @~english
+ # @brief Enumerate device according to the specified ordering
+ # @param nTLayerType [IN] Transmission layer of enumeration(All layer protocol type can input), Refer to the 'CameraParams.h' for parameter definitions, for example, #define MV_GIGE_DEVICE 0x00000001
+ # @param pstDevList [IN][OUT] Device list
+ # @param strManufacturerName [IN] Manufacture Name
+ # @param enSortMethod [IN] Sorting Method
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks The memory of the device list is allocated within the SDK. When the interface is invoked by multiple threads, the memory of the device list will be released and applied.
+ # It is recommended to avoid multithreaded enumeration operations as much as possible.
+ # strManufacturerName can be passed in NULL,if NULL is passed in, it will return the sorted list of all devices.
+ # If it is not NULL,it will only return the sorted list of the specified manufacturer's devices.
+ @staticmethod
+ def MV_CC_EnumDevicesEx2(nTLayerType, stDevList, strManufacturerName, enSortMethod):
+ MvCamCtrldll.MV_CC_EnumDevicesEx2.argtype = (c_uint, c_void_p, c_void_p, c_uint)
+ MvCamCtrldll.MV_CC_EnumDevicesEx2.restype = c_uint
+ return MvCamCtrldll.MV_CC_EnumDevicesEx2(c_uint(nTLayerType), byref(stDevList),
+ strManufacturerName.encode('ascii'), c_uint(enSortMethod))
+
+ ##
+ # @~chinese
+ # @brief 璁惧鏄惁鍙繛鎺�
+ # @param pstDevInfo [IN] 璁惧淇℃伅缁撴瀯浣�
+ # @param nAccessMode [IN] 璁块棶鏉冮檺,鍙傛暟瀹氫箟鍙傝CameraParams.h瀹氫箟, 濡�:#define MV_ACCESS_Exclusive 1 锛堣鍙傛暟:浠呭 MV_GIGE_DEVICE/MV_GENTL_GIGE_DEVICE 绫诲瀷鐨勮澶囨湁鏁堬級
+ # @remarks GIGE鐩告満: 璇诲彇璁惧CCP瀵勫瓨鍣ㄧ殑鍊硷紝鍒ゆ柇褰撳墠鐘舵�佹槸鍚﹀叿鏈夋煇绉嶈闂潈闄�
+ # 濡傛灉璁惧(MV_GENTL_GIGE_DEVICE/MV_GENTL_GIGE_DEVICE)涓嶆敮鎸� MV_ACCESS_ExclusiveWithSwitch銆丮V_ACCESS_ControlWithSwitch銆丮V_ACCESS_ControlSwitchEnable 銆丮V_ACCESS_ControlSwitchEnableWithKey杩欏洓绉嶆ā寮忥紝鎺ュ彛杩斿洖false銆�
+ # 锛堢洰鍓嶈澶囦笉鏀寔杩�3绉嶆姠鍗犳ā寮忥紝鍥介檯涓婁富娴佺殑鍘傚晢鐨勮澶囦篃閮芥殏涓嶆敮鎸佽繖3绉嶆ā寮忋�傦級
+ # MV_GIGE_DEVICE/MV_GENTL_GIGE_DEVICE 绫诲瀷璁惧锛氭寜鐓AccessMode锛岃繑鍥炲綋鍓嶆槸鍚﹀彲浠ヨ杩炴帴;
+ # 璇ユ帴鍙f敮鎸� 铏氭嫙鐩告満锛孶3V鐩告満锛宑xp, xof, cameralink閲囬泦鍗$浉鏈�, nAccessMode鏃犳晥锛屽鏋滅浉鏈烘病鏈夎杩炴帴杩斿洖true锛� 濡傛灉璁惧琚涓夋柟杩炴帴锛屽垯杩斿洖false
+ # 璇ユ帴鍙d笉鏀寔CameraLink璁惧(杩斿洖false)
+ # @~english
+ # @brief Is the device accessible
+ # @param pstDevInfo [IN] Device Information Structure
+ # @param nAccessMode [IN] Access Right, Refer to the 'CameraParams.h' for parameter definitions, for example, #define MV_ACCESS_Exclusive 1 (This parameter is only valid for devices of type MV_GIGE-DEVICE/MV_GENTL_GIGE-DEVICE)
+ # @return Access, return true. Not access, return false
+ # @remarks Read device CCP register value and determine current access permission.
+ # If the device (MV_GENTL_GIGE_DEVICE/MV_GENTL_GIGE_DEVICE) does not support the MV_ACCESS_ExclusiveWithSwitch, MV_ACCESS_ControlWithSwitch, MV_ACCESS_ControlSwitchEnable, and MV_ACCESS_ControlSwitchEnableWithKey modes, the interface returns false. (At present, the device does not support these three preemptive modes, and the devices of mainstream international manufacturers do not currently support these three modes.)
+ # MV_GIGE_DEVICE/MV_GENTL_GIGE_DEVICE type device: returns whether it can be connected according to nAccessMode;
+ # This interface supports virtual cameras, U3V cameras, cxp, xof, cameralink capture card cameras, nAccessMode is invalid. If the camera is not connected, it returns true. If the device is connected by a third party, it returns false
+ # This interface does not support CameraLink devices (returns false)
+ @staticmethod
+ def MV_CC_IsDeviceAccessible(stDevInfo, nAccessMode):
+ MvCamCtrldll.MV_CC_IsDeviceAccessible.argtype = (c_void_p, c_uint)
+ MvCamCtrldll.MV_CC_IsDeviceAccessible.restype = c_uint
+ return MvCamCtrldll.MV_CC_IsDeviceAccessible(byref(stDevInfo), nAccessMode)
+
+
+
+ ##
+ # @~chinese
+ # @brief 鍒涘缓璁惧鍙ユ焺
+ # @param handle [IN][OUT] 璁惧鍙ユ焺
+ # @param pstDevInfo [IN] 璁惧淇℃伅缁撴瀯浣�
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 鏍规嵁杈撳叆鐨勮澶囦俊鎭紝鍒涘缓搴撳唴閮ㄥ繀椤荤殑璧勬簮鍜屽垵濮嬪寲鍐呴儴妯″潡
+ # 閫氳繃璇ユ帴鍙e垱寤哄彞鏌勶紝璋冪敤SDK鎺ュ彛锛屼細榛樿鐢熸垚SDK鏃ュ織鏂囦欢锛屽鏋滀笉闇�瑕佺敓鎴愭棩蹇楁枃浠讹紝鍙互灏嗘棩蹇楅厤缃枃浠朵腑鐨勬棩蹇楃瓑绾ф敼鎴恛ff
+
+ # @~english
+ # @brief Create Device Handle
+ # @param handle [IN][OUT] Device handle
+ # @param pstDevInfo [IN] Device Information Structure
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks Create required resources within library and initialize internal module according to input device information.
+ # By creating a handle through this interface and calling the SDK interface, SDK log files will be generated by default. If no log file needs to be generated, the log level in the log configuration file can be changed to off
+ def MV_CC_CreateHandle(self, stDevInfo):
+ MvCamCtrldll.MV_CC_CreateHandle.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_CreateHandle.restype = c_uint
+ return MvCamCtrldll.MV_CC_CreateHandle(byref(self.handle), byref(stDevInfo))
+
+ ##
+ # @~chinese
+ # @brief 閿�姣佽澶囧彞鏌�
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks MV_CC_DestroyHandle 濡傛灉浼犲叆閲囬泦鍗″彞鏌勶紝鍏舵晥鏋滃拰 MV_CC_DestroyInterface 鐩稿悓;
+
+ # @~english
+ # @brief Destroy Device Handle
+ # @param handle [IN] Device handle
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks If MV_CC_DestroyHandle passes in "Frame grabber handle", the effect is the same as the MV_CC_DestroyInterface
+ def MV_CC_DestroyHandle(self):
+ MvCamCtrldll.MV_CC_DestroyHandle.argtype = c_void_p
+ MvCamCtrldll.MV_CC_DestroyHandle.restype = c_uint
+ return MvCamCtrldll.MV_CC_DestroyHandle(self.handle)
+
+ ##
+ # @~chinese
+ # @brief 鎵撳紑璁惧
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param nAccessMode [IN] 璁块棶鏉冮檺, 鍙傛暟瀹氫箟鍙傝CameraParams.h瀹氫箟, 濡�:#define MV_ACCESS_Exclusive 1 锛堜粎瀵� MV_GIGE_DEVICE/MV_GENTL_GIGE_DEVICE 绫诲瀷鐨勮澶囨湁鏁堬級
+ # @param nSwitchoverKey [IN] 鍒囨崲璁块棶鏉冮檺鏃剁殑瀵嗛挜 锛堜粎瀵� MV_GIGE_DEVICE 绫诲瀷鐨勮澶囨湁鏁堬級
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 鏍规嵁璁剧疆鐨勮澶囧弬鏁帮紝鎵惧埌瀵瑰簲鐨勮澶囷紝杩炴帴璁惧, 璋冪敤鎺ュ彛鏃跺彲涓嶄紶鍏AccessMode鍜宯SwitchoverKey锛屾鏃堕粯璁よ澶囪闂ā寮忎负鐙崰鏉冮檺銆�
+ # MV_GIGE_DEVICE 绫诲瀷璁惧锛岀洰鍓嶇浉鏈哄浐浠舵殏涓嶆敮鎸丮V_ACCESS_ExclusiveWithSwitch銆丮V_ACCESS_ControlWithSwitch銆丮V_ACCESS_ControlSwitchEnable銆丮V_ACCESS_ControlSwitchEnableWithKey杩欏洓绉嶆姠鍗犳ā寮�, SDK鎺ュ彛鏀寔璁剧疆
+ # MV_GENTL_GIGE_DEVICE 璁惧鍙敮鎸� nAccessMode 鏄� MV_ACCESS_Exclusive 銆丮V_ACCESS_Control 銆丮V_ACCESS_Monitor鏉冮檺
+ # 瀵逛簬U3V璁惧锛孋XP,Cameralink(MV_CAMERALINK_DEVICE銆丮V_GENTL_CAMERALINK_DEVICE), Xof璁惧, 铏氭嫙GEV, 铏氭嫙U3V璁惧锛歯AccessMode銆乶SwitchoverKey杩欎袱涓弬鏁版棤鏁堬紱 榛樿浠ユ帶鍒舵潈闄愭墦寮�璁惧;
+ # 璇ユ帴鍙f敮鎸佺綉鍙h澶囦笉鏋氫妇鐩存帴鎵撳紑锛屼笉鏀寔U鍙e拰GenTL璁惧涓嶆灇涓炬墦寮�璁惧
+
+ # @~english
+ # @brief Open Device
+ # @param handle [IN] Device handle
+ # @param nAccessMode [IN] Access Right, Refer to the 'CameraParams.h' for parameter definitions, for example, #define MV_ACCESS_Exclusive 1 (Effective only for the device type of MV_GIGE_DEVICE/MV_GENTL_GIGE_DEVICE)
+ # @param nSwitchoverKey [IN] Switch key of access right (Effective only for the device type of MV_GIGE_DEVICE)
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks Find specific device and connect according to set device parameters.When calling the interface, the input of nAccessMode and nSwitchoverKey is optional,
+ # and the device access mode is exclusive. The device type of MV_GIGE_DEVICE, Currently the device firmware does not support the following preemption modes:
+ # MV_ACCESS_ExclusiveWithSwitch, MV_ACCESS_ControlWithSwitch, MV_ACCESS_ControlSwitchEnable, MV_ACCESS_ControlSwitchEnableWithKey; SDK Interface will return MV_OK.
+ # The device type of MV_GENTL_GIGE_DEVICE, only support nAccessMode as MV_ACCESS_Exclusive, MV_ACCESS_Control, MV_ACCESS_Monitor;
+ # For USB3Vision device, CXP device, Cameralink device(MV_CAMERALINK_DEVICE銆丮V_GENTL_CAMERALINK_DEVICE), Xof device, virtual GEV devoce, virtual U3V device,
+ # nAccessMode, nSwitchoverKey are invalid. Open device with MV_ACCESS_Control in default.
+ # This Interface support open without enumeration by GEV device锛孶SB device and GenTL device don't support .
+ def MV_CC_OpenDevice(self, nAccessMode=MV_ACCESS_Exclusive, nSwitchoverKey=0):
+ MvCamCtrldll.MV_CC_OpenDevice.argtype = (c_void_p, c_uint32, c_uint16)
+ MvCamCtrldll.MV_CC_OpenDevice.restype = c_uint
+ return MvCamCtrldll.MV_CC_OpenDevice(self.handle, nAccessMode, nSwitchoverKey)
+
+ ##
+ # @~chinese
+ # @brief 鍏抽棴璁惧
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 閫氳繃MV_CC_OpenDevice杩炴帴璁惧鍚庯紝鍙互閫氳繃璇ユ帴鍙f柇寮�璁惧杩炴帴锛岄噴鏀捐祫婧�
+
+ # @~english
+ # @brief Close Device
+ # @param handle [IN] Device handle
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks After connecting to device through MV_CC_OpenDevice, use this interface to disconnect and release resources.
+ def MV_CC_CloseDevice(self):
+ MvCamCtrldll.MV_CC_CloseDevice.argtype = c_void_p
+ MvCamCtrldll.MV_CC_CloseDevice.restype = c_uint
+ return MvCamCtrldll.MV_CC_CloseDevice(self.handle)
+
+ ##
+ # @~chinese
+ # @brief 鍒ゆ柇璁惧鏄惁澶勪簬杩炴帴鐘舵��
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @return 璁惧澶勪簬杩炴帴鐘舵�侊紝杩斿洖true锛涙病杩炴帴鎴栧け鍘昏繛鎺ワ紝杩斿洖false
+
+ # @~english
+ # @brief Is The Device Connected
+ # @param handle [IN] Device handle
+ # @return Connected, return true. Not Connected or DIsconnected, return false
+ def MV_CC_IsDeviceConnected(self):
+ MvCamCtrldll.MV_CC_IsDeviceConnected.argtype = (c_void_p)
+ MvCamCtrldll.MV_CC_IsDeviceConnected.restype = c_bool
+ return MvCamCtrldll.MV_CC_IsDeviceConnected(self.handle)
+
+ ##
+ # @~chinese
+ # @brief 娉ㄥ唽鍥惧儚鏁版嵁鍥炶皟
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param cbOutput [IN] 鍥炶皟鍑芥暟鎸囬拡
+ # @param pUser [IN] 鐢ㄦ埛鑷畾涔夊彉閲�
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 閫氳繃璇ユ帴鍙e彲浠ヨ缃浘鍍忔暟鎹洖璋冨嚱鏁帮紝鍦∕V_CC_CreateHandle涔嬪悗鍗冲彲璋冪敤, 鍥惧儚鏁版嵁閲囬泦鏈変袱绉嶆柟寮忥紝涓ょ鏂瑰紡涓嶈兘澶嶇敤锛�
+ # 鏂瑰紡涓�锛氳皟鐢∕V_CC_RegisterImageCallBackEx璁剧疆鍥惧儚鏁版嵁鍥炶皟鍑芥暟锛岀劧鍚庤皟鐢∕V_CC_StartGrabbing寮�濮嬮噰闆嗭紝閲囬泦鐨勫浘鍍忔暟鎹湪璁剧疆鐨勫洖璋冨嚱鏁颁腑杩斿洖
+ # 鏂瑰紡浜岋細璋冪敤MV_CC_StartGrabbing寮�濮嬮噰闆嗭紝鐒跺悗鍦ㄥ簲鐢ㄥ眰寰幆璋冪敤MV_CC_GetOneFrameTimeout鑾峰彇鎸囧畾鍍忕礌鏍煎紡鐨勫抚鏁版嵁锛�
+ # 鑾峰彇甯ф暟鎹椂涓婂眰搴旂敤绋嬪簭闇�瑕佹牴鎹抚鐜囨帶鍒跺ソ璋冪敤璇ユ帴鍙g殑棰戠巼銆�
+ # 璇ユ帴鍙d笉鏀寔MV_CAMERALINK_DEVICE 绫诲瀷鐨勮澶囥��
+
+ # @~english
+ # @brief Register the image callback function
+ # @param handle [IN] Device handle
+ # @param cbOutput [IN] Callback function pointer
+ # @param pUser [IN] User defined variable
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks After MV_CC_CreateHandle, call this interface to set image data callback function.There are two available image data acquisition modes, and cannot be used together:
+ # Mode 1: Call MV_CC_RegisterImageCallBack to set image data callback function, and then callMV_CC_StartGrabbing to start acquiring. The acquired image data will return in the set callback function.
+ # Mode 2: Call MV_CC_StartGrabbing to start acquiring, and then call MV_CC_GetOneFrameTimeout repeatedly in application layer to get frame data of specified pixel format. When getting frame data,
+ # the frequency of calling this interface should be controlled by upper layer application according to frame rate.
+ # This interface does not support devices of type MV_CAMERALINK_DEVICE
+ def MV_CC_RegisterImageCallBackEx(self, CallBackFun, pUser):
+ MvCamCtrldll.MV_CC_RegisterImageCallBackEx.argtype = (c_void_p, c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_RegisterImageCallBackEx.restype = c_uint
+ return MvCamCtrldll.MV_CC_RegisterImageCallBackEx(self.handle, CallBackFun, pUser)
+
+ ##
+ # @~chinese
+ # @brief 娉ㄥ唽鍥惧儚鏁版嵁鍥炶皟锛屽洖璋冨嚱鏁扮粨鏉熷悗锛岄渶瑕佽皟鐢∕V_CC_FreeImageBuffer鎵嶈兘鍥炴敹鍥惧儚缂撳瓨
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param cbOutput [IN] 鍥炶皟鍑芥暟鎸囬拡
+ # @param bAutoFree [IN] 鍥惧儚缂撳瓨鑷姩鍥炴敹鏍囪(true锛氬洖璋冪粨鏉熷悗锛屽浘鍍忕紦瀛樹細琚玈DK鍥炴敹锛沠alse锛氬洖璋冪粨鏉熷悗锛岄渶瑕佽皟鐢∕V_CC_FreeImageBuffer鎺ュ彛鎵嶈兘鍥炴敹鍥惧儚缂撳瓨)
+ # @param pUser [IN] 鐢ㄦ埛鑷畾涔夊彉閲�
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 閫氳繃璇ユ帴鍙e彲浠ヨ缃浘鍍忔暟鎹洖璋冨嚱鏁帮紝鍦∕V_CC_CreateHandle涔嬪悗鍗冲彲璋冪敤銆�
+ # 鑾峰彇甯ф暟鎹椂涓婂眰搴旂敤绋嬪簭闇�瑕佹牴鎹抚鐜囨帶鍒跺ソ璋冪敤璇ユ帴鍙g殑棰戠巼銆�
+ # 璇ユ帴鍙d笉鏀寔MV_CAMERALINK_DEVICE 绫诲瀷鐨勮澶囥��
+ # 鍥炶皟鍑芥暟涓殑pstFrame鍙傛暟涓篠DK鍐呴儴涓存椂鍙橀噺锛屽叾鍐呭闇�鎷疯礉鍚庢墠鑳藉湪鍥惧儚鍥炶皟澶栦娇鐢ㄣ��
+
+ # @~english
+ # @brief Register the image callback function, Call MV_CC_FreeImageBuffer() to release the buffer after the callback function ends.
+ # @param handle [IN] Device handle
+ # @param cbOutput [IN] Callback function pointer
+ # @param bAutoFree [IN] It refers to the mark for automatic releasing of image buffer. (true:The image buffer will be released and reused by SDK after callback. false:After callback, it is required to call MV_CC_FreeImageBuffer() to release and reuse the image buffer.)
+ # @param pUser [IN] User defined variable
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks After MV_CC_CreateHandle, call this interface to set image data callback function.
+ # the frequency of calling this interface should be controlled by upper layer application according to frame rate.
+ # This interface does not support devices of type MV_CAMERALINK_DEVICE
+ # The pstFrame parameter in the callback function is an internal temporary variable of the SDK, and its content must be copied before it can be used outside the callback.
+ def MV_CC_RegisterImageCallBackEx2(self, CallBackFun, pUser, bAutoFree):
+ MvCamCtrldll.MV_CC_RegisterImageCallBackEx2.argtype = (c_void_p, c_void_p, c_void_p, ctypes.c_bool)
+ MvCamCtrldll.MV_CC_RegisterImageCallBackEx2.restype = c_uint
+ return MvCamCtrldll.MV_CC_RegisterImageCallBackEx2(self.handle, CallBackFun, pUser, ctypes.c_bool(bAutoFree))
+
+
+ ##
+ # @~chinese
+ # @brief 娉ㄥ唽娴佸紓甯告秷鎭洖璋�
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param cbException [IN] 寮傚父鍥炶皟鍑芥暟鎸囬拡
+ # @param pUser [IN] 鐢ㄦ埛鑷畾涔夊彉閲�
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+
+ # @~english
+ # @brief Register exception stream callBack
+ # @param handle [IN] Device handle
+ # @param cbException [IN] Exception callback function pointer
+ # @param pUser [IN] User defined variable
+ # @return Success, return MV_OK. Failure, return error code
+ def MV_CC_RegisterStreamExceptionCallBack(self, CallBackFun, pUser):
+ MvCamCtrldll.MV_CC_RegisterStreamExceptionCallBack.argtype = (c_void_p, c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_RegisterStreamExceptionCallBack.restype = c_uint
+ return MvCamCtrldll.MV_CC_RegisterStreamExceptionCallBack(self.handle, CallBackFun, pUser)
+
+
+ ##
+ # @~chinese
+ # @brief 寮�濮嬪彇娴�
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璇ユ帴鍙d笉鏀寔MV_CAMERALINK_DEVICE 绫诲瀷鐨勮澶囥��
+
+ # @~english
+ # @brief Start Grabbing
+ # @param handle [IN] Device handle
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This interface does not support devices of type MV_CAMERALINK_DEVICE
+ def MV_CC_StartGrabbing(self):
+ MvCamCtrldll.MV_CC_StartGrabbing.argtype = c_void_p
+ MvCamCtrldll.MV_CC_StartGrabbing.restype = c_uint
+ return MvCamCtrldll.MV_CC_StartGrabbing(self.handle)
+
+
+ ##
+ # @~chinese
+ # @brief 鍋滄鍙栨祦
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璇ユ帴鍙d笉鏀寔MV_CAMERALINK_DEVICE 绫诲瀷鐨勮澶囥��
+
+ # @~english
+ # @brief Stop Grabbing
+ # @param handle [IN] Device handle
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This interface does not support devices of type MV_CAMERALINK_DEVICE
+ def MV_CC_StopGrabbing(self):
+ MvCamCtrldll.MV_CC_StopGrabbing.argtype = c_void_p
+ MvCamCtrldll.MV_CC_StopGrabbing.restype = c_uint
+ return MvCamCtrldll.MV_CC_StopGrabbing(self.handle)
+
+ ##
+ # @~chinese
+ # @brief 浣跨敤鍐呴儴缂撳瓨鑾峰彇涓�甯у浘鐗囷紙涓嶮V_CC_Display涓嶈兘鍚屾椂浣跨敤锛�
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param pstFrame [IN][OUT] 鍥惧儚鏁版嵁鍜屽浘鍍忎俊鎭�
+ # @param nMsec [IN] 绛夊緟瓒呮椂鏃堕棿锛岃緭鍏NFINITE鏃惰〃绀烘棤闄愮瓑寰咃紝鐩村埌鏀跺埌涓�甯ф暟鎹垨鑰呭仠姝㈠彇娴�
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璋冪敤璇ユ帴鍙h幏鍙栧浘鍍忔暟鎹抚涔嬪墠闇�瑕佸厛璋冪敤MV_CC_StartGrabbing鍚姩鍥惧儚閲囬泦銆傝鎺ュ彛涓轰富鍔ㄥ紡鑾峰彇甯ф暟鎹紝涓婂眰搴旂敤绋嬪簭闇�瑕佹牴鎹抚鐜囷紝鎺у埗濂借皟鐢ㄨ鎺ュ彛鐨勯鐜�,
+ # 璇ユ帴鍙f敮鎸佽缃秴鏃舵椂闂达紝SDK鍐呴儴绛夊緟鐩村埌鏈夋暟鎹椂杩斿洖锛屽彲浠ュ鍔犲彇娴佸钩绋虫�э紝閫傚悎鐢ㄤ簬瀵瑰钩绋虫�ц姹傝緝楂樼殑鍦哄悎銆�
+ # 璇ユ帴鍙d笌MV_CC_FreeImageBuffer閰嶅浣跨敤锛屽綋澶勭悊瀹屽彇鍒扮殑鏁版嵁鍚庯紝闇�瑕佺敤MV_CC_FreeImageBuffer鎺ュ彛灏唒Frame鍐呯殑鏁版嵁鎸囬拡鏉冮檺杩涜閲婃斁銆�
+ # 璇ユ帴鍙d笌MV_CC_GetOneFrameTimeout鐩告瘮锛屾湁鐫�鏇撮珮鐨勬晥鐜囥�備笖鍏跺彇娴佺紦瀛樼殑鍒嗛厤鏄敱sdk鍐呴儴鑷姩鍒嗛厤鐨勶紝鑰孧V_CC_GetOneFrameTimeout鎺ュ彛鏄渶瑕佸鎴疯嚜琛屽垎閰嶃��
+ # 璇ユ帴鍙e湪璋冪敤MV_CC_Display鍚庢棤娉曞彇娴併��
+ # 璇ユ帴鍙e浜嶶3V銆丟IGE璁惧鍧囧彲鏀寔銆�
+ # 璇ユ帴鍙d笉鏀寔CameraLink璁惧銆�
+
+ # @~english
+ # @brief Get a frame of an image using an internal cache
+ # @param handle [IN] Device handle
+ # @param pstFrame [IN][OUT] Image data and image information
+ # @param nMsec [IN] Waiting timeout
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks Before calling this API to get image data frame, you should call MV_CC_StartGrabbing to start image acquisition.
+ # This API can get frame data actively, the upper layer program should control the frequency of calling this API according to the frame rate. This API support setting timeout, and SDK will wait to return until data appears. This function will increase the streaming stability, which can be used in the situation with high stability requirement.
+ # This API and MV_CC_FreeImageBuffer should be called in pairs, after processing the acquired data, you should call MV_CC_FreeImageBuffer to release the data pointer permission of pFrame.
+ # This interface is more efficient than MV_CC_GetOneFrameTimeout. The allocation of the stream cache is automatically allocated within the SDK.The MV_CC_GetOneFrameTimeout interface needs to be allocated by customers themselves.
+ # This API cannot be called to stream after calling MV_CC_Display.
+ # This API is not supported by CameraLink device.
+ # This API is supported by both USB3 vision camera and GigE camera.
+ def MV_CC_GetImageBuffer(self, stFrame, nMsec):
+ MvCamCtrldll.MV_CC_GetImageBuffer.argtype = (c_void_p, c_void_p, c_uint)
+ MvCamCtrldll.MV_CC_GetImageBuffer.restype = c_uint
+ return MvCamCtrldll.MV_CC_GetImageBuffer(self.handle, byref(stFrame), nMsec)
+
+ ##
+ # @~chinese
+ # @brief 閲婃斁鍥惧儚缂撳瓨(姝ゆ帴鍙g敤浜庨噴鏀句笉鍐嶄娇鐢ㄧ殑鍥惧儚缂撳瓨锛屼笌MV_CC_GetImageBuffer閰嶅浣跨敤)
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param pstFrame [IN] 鍥惧儚鏁版嵁鍜屽浘鍍忔暟鎹�
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璇ユ帴鍙d笌MV_CC_GetImageBuffer閰嶅浣跨敤锛屼娇鐢∕V_CC_GetImageBuffer鎺ュ彛鍙栧埌鐨勫浘鍍忔暟鎹畃Frame锛岄渶瑕佺敤MV_CC_FreeImageBuffer鎺ュ彛杩涜鏉冮檺閲婃斁
+ # 璇ユ帴鍙e彇娴佹晥鐜囬珮浜嶨etOneFrameTimeout鎺ュ彛
+ # 褰揋etImageBuffer涓嶈繘琛孎reeImageBuffer鏃讹紝鏈�澶ц緭鍑哄浘鍍忎釜鏁颁负褰撳墠閰嶇疆涓婼DK鐨勭紦瀛樿妭鐐逛釜鏁�(鐢ㄦ埛鍙互璋冪敤SetImageNode鎺ュ彛锛岃皟鑺係DK鐨勭紦瀛樹釜鏁帮級
+ # 璇ユ帴鍙e浜嶶3V銆丟IGE璁惧鍧囧彲鏀寔
+ # 璇ユ帴鍙d笉鏀寔CameraLink璁惧銆�
+
+ # @~english
+ # @brief Free image buffer(this interface can free image buffer, used with MV_CC_GetImageBuffer)
+ # @param handle [IN] Device handle
+ # @param pstFrame [IN] Image data and image information
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks MV_CC_FreeImageBuffer and MV_CC_GetImageBuffer API call in pairs, before calling MV_CC_GetImageBuffer to get image data pFrame, you should call MV_CC_FreeImageBuffer to release the permission.
+ # Compared with API MV_CC_GetOneFrameTimeout
+ # The API has higher efficiency of image acquisition. The max. number of nodes can be outputted is same as the "nNum" of the current configuration of the SDK's cache (users can call the SetImageNode interface to adjust the SDK's cache count)
+ # The API is not supported by CameraLink device.
+ # The API is supported by both USB3 vision camera and GigE camera.
+ def MV_CC_FreeImageBuffer(self, stFrame):
+ MvCamCtrldll.MV_CC_FreeImageBuffer.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_FreeImageBuffer.restype = c_uint
+ return MvCamCtrldll.MV_CC_FreeImageBuffer(self.handle, byref(stFrame))
+
+
+ ##
+ # @~chinese
+ # @brief 閲囩敤瓒呮椂鏈哄埗鑾峰彇涓�甯у浘鐗囷紝SDK鍐呴儴绛夊緟鐩村埌鏈夋暟鎹椂杩斿洖
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param pData [IN][OUT] 鍥惧儚鏁版嵁鎺ユ敹鎸囬拡
+ # @param nDataSize [IN] 鎺ユ敹缂撳瓨澶у皬
+ # @param pstFrameInfo [IN][OUT] 鍥惧儚淇℃伅缁撴瀯浣�
+ # @param nMsec [IN] 绛夊緟瓒呮椂鏃堕棿
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璋冪敤璇ユ帴鍙h幏鍙栧浘鍍忔暟鎹抚涔嬪墠闇�瑕佸厛璋冪敤MV_CC_StartGrabbing鍚姩鍥惧儚閲囬泦
+ # 璇ユ帴鍙d负涓诲姩寮忚幏鍙栧抚鏁版嵁锛屼笂灞傚簲鐢ㄧ▼搴忛渶瑕佹牴鎹抚鐜囷紝鎺у埗濂借皟鐢ㄨ鎺ュ彛鐨勯鐜�
+ # 璇ユ帴鍙f敮鎸佽缃秴鏃舵椂闂达紝SDK鍐呴儴绛夊緟鐩村埌鏈夋暟鎹椂杩斿洖锛屽彲浠ュ鍔犲彇娴佸钩绋虫�э紝閫傚悎鐢ㄤ簬瀵瑰钩绋虫�ц姹傝緝楂樼殑鍦哄悎
+ # 璇ユ帴鍙e浜嶶3V銆丟IGE璁惧鍧囧彲鏀寔
+ # 璇ユ帴鍙d笉鏀寔CameraLink璁惧銆�
+
+ # @~english
+ # @brief Timeout mechanism is used to get image, and the SDK waits inside until the data is returned
+ # @param handle [IN] Device handle
+ # @param pData [IN][OUT] Image data receiving buffer
+ # @param nDataSize [IN] Buffer size
+ # @param pstFrameInfo [IN][OUT] Image information structure
+ # @param nMsec [IN] Waiting timeout
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks Before calling this API to get image data frame, call MV_CC_StartGrabbing to start image acquisition.
+ # This API can get frame data actively, the upper layer program should control the frequency of calling this API according to the frame rate.
+ # This API supports setting timeout, SDK will wait to return until data appears. This function will increase the streaming stability, which can be used in the situation with high stability requirement.
+ # Both the USB3Vision and GIGE camera can support this API.
+ # This API is not supported by CameraLink device.
+ def MV_CC_GetOneFrameTimeout(self, pData, nDataSize, stFrameInfo, nMsec=1000):
+ MvCamCtrldll.MV_CC_GetOneFrameTimeout.argtype = (c_void_p, c_void_p, c_uint, c_void_p, c_uint)
+ MvCamCtrldll.MV_CC_GetOneFrameTimeout.restype = c_uint
+ return MvCamCtrldll.MV_CC_GetOneFrameTimeout(self.handle, pData, nDataSize, byref(stFrameInfo), nMsec)
+
+ ##
+ # @~chinese
+ # @brief 娓呴櫎鍙栨祦鏁版嵁缂撳瓨
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璇ユ帴鍙e厑璁哥敤鎴峰湪涓嶅仠姝㈠彇娴佺殑鏃跺�欙紝灏辫兘娓呴櫎缂撳瓨涓笉闇�瑕佺殑鍥惧儚
+ # 璇ユ帴鍙e湪杩炵画妯″紡鍒囪Е鍙戞ā寮忓悗锛屽彲浠ユ竻闄ゅ巻鍙叉暟鎹��
+ # 璇ユ帴鍙g洰鍓嶅彧鑳芥竻闄DK鍐呴儴鐨勫浘鍍忕紦瀛橈紝閲囬泦鍗″唴鐨勭紦瀛樿繕鏃犳硶娓呴櫎銆�
+
+ # @~english
+ # @brief if Image buffers has retrieved the data锛孋lear them
+ # @param handle [IN] Device handle
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This interface allows user to clear the unnecessary images from the buffer memory without stopping acquisition.
+ # This interface allows user to clear previous data after switching from continuous mode to trigger mode.
+ # This interface can only clear the image cache inside the SDK, and the cache in the Frame grabber cannot be cleared.
+ def MV_CC_ClearImageBuffer(self):
+ MvCamCtrldll.MV_CC_ClearImageBuffer.argtype = (c_void_p)
+ MvCamCtrldll.MV_CC_ClearImageBuffer.restype = c_uint
+ return MvCamCtrldll.MV_CC_ClearImageBuffer(self.handle)
+
+ ##
+ # @~chinese
+ # @brief 鑾峰彇褰撳墠鍥惧儚缂撳瓨鍖虹殑鏈夋晥鍥惧儚涓暟
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param pnValidImageNum [IN][OUT] 褰撳墠鍥惧儚缂撳瓨鍖轰腑鏈夋晥鍥惧儚涓暟鐨勬寚閽�
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璇ユ帴鍙e彧缁熻SDK鍐呴儴鐨勬湁鏁堝浘鍍忎釜鏁帮紝涓嶅寘鎷噰闆嗗崱缂撳瓨鍐呯殑鏈夋晥鍥惧儚涓暟
+
+ # @~english
+ # @brief Get the number of valid images in the current image buffer
+ # @param handle [IN] Device handle
+ # @param pnValidImageNum [IN][OUT] The number of valid images in the current image buffer
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This interface only counts the number of valid images inside the SDK, not including the number of valid images in the capture card cache.
+ def MV_CC_GetValidImageNum(self, nValidImageNum):
+ MvCamCtrldll.MV_CC_GetValidImageNum.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_GetValidImageNum.restype = c_uint
+ return MvCamCtrldll.MV_CC_GetValidImageNum(self.handle, byref(nValidImageNum))
+
+ ##
+ # @~chinese
+ # @brief 鏄剧ず涓�甯у浘鍍�
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param hWnd [IN] 绐楀彛鍙ユ焺
+ # @param pstDisplayInfo [IN] 鍥惧儚淇℃伅
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璇ユ帴鍙f敮鎸佹覆鏌撳楂樺ぇ灏忚嚦int绫诲瀷
+ # 娓叉煋妯″紡涓篋3D鏃讹紝鏀寔鐨勬渶澶у垎杈ㄧ巼涓�16384 # 163840
+
+ # @~english
+ # @brief Display one frame image
+ # @param handle [IN] Device handle
+ # @param hWnd [IN] HWND
+ # @param pstDisplayInfo [IN] Frame Info
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks The rendering supports width and height to int type.
+ # When the render mode is D3D, the maximum resolution supported is 16384 # 163840.
+ def MV_CC_DisplayOneFrameEx(self, hWnd, pstDisplayInfo):
+ MvCamCtrldll.MV_CC_DisplayOneFrameEx.argtype = (c_void_p, c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_DisplayOneFrameEx.restype = c_uint
+ return MvCamCtrldll.MV_CC_DisplayOneFrameEx(self.handle, hWnd, byref(pstDisplayInfo))
+
+
+ ##
+ # @~chinese
+ # @brief 鏄剧ず涓�甯у浘鍍�
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param hWnd [IN] 绐楀彛鍙ユ焺
+ # @param pstImage [IN] 鍥惧儚淇℃伅
+ # @param enRenderMode [IN] 娓叉煋鏂瑰紡锛學indows:0-GDI 1-D3D 2-OpenGL Linux:0-OpenGL
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 鍙�夋嫨OpenGL娓叉煋妯″紡锛屾敮鎸丳ixelType_Gvsp_RGB8_Packed锛孭ixelType_Gvsp_BGR8_Packed锛孭ixelType_Gvsp_Mono8涓夌鍍忕礌鏍煎紡鍥惧儚澶у皬瓒呰繃4GB鐨勬覆鏌擄紝鍏朵粬娓叉煋妯″紡涓嶆敮鎸併��
+ # 鑻ュ浘鍍忓ぇ灏忔湭瓒呰繃4GB锛屾敮鎸佸楂樺ぇ灏忚嚦int绫诲瀷
+ # 璋冪敤鏃堕渶瑕佽緭鍏V_CC_IMAGE缁撴瀯浣撲腑nImageLen鐨勫��
+ # 娓叉煋妯″紡涓篋3D鏃讹紝鏀寔鐨勬渶澶у垎杈ㄧ巼涓�16384 # 163840
+
+ # @~english
+ # @brief Display one frame image
+ # @param handle [IN] Device handle
+ # @param hWnd [IN] HWND
+ # @param pstImage [IN] Frame Info
+ # @param enRenderMode [IN] Render mode, Windows:0-GDI 1-D3D 2-OpenGL Linux:0-OpenGL
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks OpenGL rendering mode can be selected, supporting three pixel formats: PixelType_Gvsp_RGB8_Packed锛孭ixelType_Gvsp_BGR8_Packed锛宎nd PixelType_Gvsp_Mono8 for rendering images with a size exceeding 4GB.
+ # Note that, other rendering modes are not supported.
+ # If the image size does not exceed 4GB, the rendering supports width and height to int type.
+ # When the render mode is D3D, the maximum resolution supported is 16384 # 163840.
+ # When calling, the value of nImageLen in the MV_CC_IMAGE structure needs to be input.
+ def MV_CC_DisplayOneFrameEx2(self, hWnd, pstImage, enRenderMode):
+ MvCamCtrldll.MV_CC_DisplayOneFrameEx2.argtype = (c_void_p, c_void_p, c_void_p,c_uint)
+ MvCamCtrldll.MV_CC_DisplayOneFrameEx2.restype = c_uint
+ return MvCamCtrldll.MV_CC_DisplayOneFrameEx2(self.handle, hWnd, byref(pstImage), c_uint(enRenderMode))
+
+
+ ##
+ # @~chinese
+ # @brief 璁剧疆SDK鍐呴儴鍥惧儚缂撳瓨鑺傜偣涓暟锛屽ぇ浜庣瓑浜�1锛屽湪鎶撳浘鍓嶈皟鐢�
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param nNum [IN] 缂撳瓨鑺傜偣涓暟
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璋冪敤璇ユ帴鍙e彲浠ヨ缃甋DK鍐呴儴鍥惧儚缂撳瓨鑺傜偣涓暟锛屽湪璋冪敤MV_CC_StartGrabbing寮�濮嬫姄鍥惧墠璋冪敤銆�
+ # 涓嶅悓鐩告満鍥犱负鍙栨祦鏂瑰紡涓嶅悓锛屼笉璋冪敤MV_CC_SetImageNodeNum鎺ュ彛鎯呭喌涓嬶紝榛樿涓嶅悓鐩告満榛樿缂撳瓨鑺傜偣涓暟涓嶅悓
+ # SDK瀹為檯鍒嗛厤鐨勮妭鐐逛釜鏁� = SDK鍐呴儴棰勫垎閰嶇殑涓暟 + 鐢ㄦ埛鍒嗛厤鐨勮妭鐐�(MV_CC_SetImageNodeNum)锛屽叾涓璖DK鍐呴儴棰勫垎閰嶇殑涓暟浠呬緵鍐呴儴浣跨敤锛屾瘮濡傚弻U鍐呴儴浼氬鍒嗛厤2涓妭鐐�;鑻ョ郴缁熷唴瀛樿祫婧愪笉澶�,SDK鍐呴儴浼氶噸鏂拌绠�, 浠ラ噸鏂拌绠楃殑鑺傜偣涓暟涓哄噯
+ # 鎺ュ彛涓嶆敮鎸丮V_CAMERALINK_DEVICE 绫诲瀷鐨勮澶囥��
+ # 璇ユ帴鍙d粎瀵筍DK鍐呴儴鍒嗛厤缂撳瓨妯″紡鏈夋晥锛屽閮ㄥ垎閰嶇紦瀛樻ā寮忥紙鍗宠皟鐢∕V_CC_RegisterBuffer锛夋棤鏁�;
+
+ # @~english
+ # @brief Set the number of the internal image cache nodes in SDK, Greater than or equal to 1, to be called before the capture
+ # @param handle [IN] Device handle
+ # @param nNum [IN] Image Node Number
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks Call this interface to set the number of SDK internal image buffer nodes. The interface should be called before calling MV_CC_StartGrabbing for capturing.
+
+ # Due to differing streaming methods among cameras, the default number of buffer nodes varies across different camera models when the MV_CC_SetImageNodeNum interface is not invoked.
+ # The actual number of nodes allocated by the SDK = the sum of the SDK's internal pre-allocated nodes + user-specified nodes (set via MV_CC_SetImageNodeNum). The internally pre-allocated nodes are reserved for internal use only, such as the dual-U configuration which allocates an additional 2 nodes internally.
+ # If the system memory resources are insufficient, the SDK will recalculate and use it as the actual number of nodes.
+ # This interface does not support devices of type MV_CAMERALINK_DEVICE
+ # This interface is only valid for the SDK's internal allocation cache mode, and the external allocation cache mode (i.e., calling MV_CC_RegisterBuffer) is invalid;
+ def MV_CC_SetImageNodeNum(self, nNum):
+ MvCamCtrldll.MV_CC_SetImageNodeNum.argtype = (c_void_p, c_uint)
+ MvCamCtrldll.MV_CC_SetImageNodeNum.restype = c_uint
+ return MvCamCtrldll.MV_CC_SetImageNodeNum(self.handle, c_uint(nNum))
+
+ ##
+ # @~chinese
+ # @brief 璁剧疆鍙栨祦绛栫暐
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param enGrabStrategy [IN] 绛栫暐鏋氫妇鍊�
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璇ユ帴鍙e畾涔変簡鍥涚鍙栨祦绛栫暐锛岀敤鎴峰彲浠ユ牴鎹疄闄呴渶姹傝繘琛岄�夋嫨銆傚叿浣撴弿杩板涓嬶細
+ # OneByOne: 浠庢棫鍒版柊涓�甯т竴甯х殑浠庤緭鍑虹紦瀛樺垪琛ㄤ腑鑾峰彇鍥惧儚锛屾墦寮�璁惧鍚庨粯璁や负璇ョ瓥鐣�
+ # LatestImagesOnly: 浠呬粠杈撳嚭缂撳瓨鍒楄〃涓幏鍙栨渶鏂扮殑涓�甯у浘鍍忥紝鍚屾椂娓呯┖杈撳嚭缂撳瓨鍒楄〃
+ # LatestImages: 浠庤緭鍑虹紦瀛樺垪琛ㄤ腑鑾峰彇鏈�鏂扮殑OutputQueueSize甯у浘鍍忥紝鍏朵腑OutputQueueSize鑼冨洿涓�1-ImageNodeNum锛屽彲鐢∕V_CC_SetOutputQueueSize鎺ュ彛璁剧疆锛孖mageNodeNum榛樿涓�1锛�
+ # 鍙敤MV_CC_SetImageNodeNum鎺ュ彛璁剧疆 OutputQueueSize璁剧疆鎴�1绛夊悓浜嶭atestImagesOnly绛栫暐锛孫utputQueueSize璁剧疆鎴怚mageNodeNum绛夊悓浜嶰neByOne绛栫暐
+ # UpcomingImage: 鍦ㄨ皟鐢ㄥ彇娴佹帴鍙f椂蹇界暐杈撳嚭缂撳瓨鍒楄〃涓墍鏈夊浘鍍忥紝骞剁瓑寰呰澶囧嵆灏嗙敓鎴愮殑涓�甯у浘鍍忋�傦紙璇ョ瓥鐣ヤ笉鏀寔MV_USB_DEVICE璁惧锛�
+ # 璇ユ帴鍙e湪Windows骞冲彴浠呮敮鎸丮V_GIGE_DEVICE銆丮V_USB_DEVICE璁惧锛屽湪Linux骞冲彴浠呮敮鎸丮V_USB_DEVICE璁惧锛�
+
+ # @~english
+ # @brief Set Grab Strategy
+ # @param handle [IN] Device handle
+ # @param enGrabStrategy [IN] The value of Grab Strategy
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This interface is set by four image acquisition approaches, the user may choose one as needed. Specific details are as followed:
+ # OneByOne:Obtain image from output cache list frame by frame in order, this function is default strategy when device is on.
+ # LatestImagesOnly:Obtain the latest image from output cache list only, meanwhile clear output cache list.
+ # LatestImages:Obtain the latest OutputQueueSize image from output cache list, the range of OutputQueueSize is 1-ImageNodeNum,
+ # the user may set the value of MV_CC_SetOutputQueueSizeinterface,the default value of ImageNodeNum is 1,
+ # If the user usesMV_CC_SetImageNodeNuminterface to set up OutputQueueSize,when the value of OutputQueueSize is set to be 1,
+ # the function will be same as LatestImagesOnly; if the value of OutputQueueSize is set to be ImageNodeNum, the function will be same as OneByOne.
+ # UpcomingImage:Ignore all images in output cache list when calling image acuiqisiotn interface, wait the next upcoming image generated.(This strategy does not support MV_USB_DEVICE device)
+ # This API only support MV_GIGE_DEVICE, MV_USB_DEVICE device on Windows, and only support MV_USB_DEVICE device on Linux.
+ def MV_CC_SetGrabStrategy(self, enGrabStrategy):
+ MvCamCtrldll.MV_CC_SetGrabStrategy.argtype = (c_void_p, c_uint)
+ MvCamCtrldll.MV_CC_SetGrabStrategy.restype = c_uint
+ return MvCamCtrldll.MV_CC_SetGrabStrategy(self.handle, c_uint(enGrabStrategy))
+
+
+ ##
+ # @~chinese
+ # @brief 璁剧疆杈撳嚭缂撳瓨涓暟锛堝彧鏈夊湪MV_GrabStrategy_LatestImages绛栫暐涓嬫墠鏈夋晥锛岃寖鍥达細1-ImageNodeNum锛�
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param nOutputQueueSize [IN] 杈撳嚭缂撳瓨涓暟
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璇ユ帴鍙i渶涓嶭atestImages鍙栨祦绛栫暐閰嶅璋冪敤锛岀敤浜庤缃甃atestImages绛栫暐涓嬫渶澶氬厑璁哥紦瀛樺浘鍍忕殑涓暟銆傚彲浠ュ湪鍙栨祦杩囩▼涓姩鎬佽皟鑺傝緭鍑虹紦瀛樹釜鏁�
+ # 璇ユ帴鍙e湪Windows骞冲彴浠呮敮鎸丮V_GIGE_DEVICE銆丮V_USB_DEVICE璁惧锛屽湪Linux骞冲彴浠呮敮鎸丮V_USB_DEVICE璁惧锛�
+
+ # @~english
+ # @brief Set The Size of Output Queue(Only work under the strategy of MV_GrabStrategy_LatestImages锛宺ang锛�1-ImageNodeNum)
+ # @param handle [IN] Device handle
+ # @param nOutputQueueSize [IN] The Size of Output Queue
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This interface must be used with LatestImages Grab strategy, it is used for setting the maximum allowance queue size of the image under the LatestImages strategy.
+ # The user may change the output queue size while grabbing images.
+ # This API only support MV_GIGE_DEVICE, MV_USB_DEVICE device on Windows, and only support MV_USB_DEVICE device on Linux.
+ def MV_CC_SetOutputQueueSize(self, nOutputQueueSize):
+ MvCamCtrldll.MV_CC_SetOutputQueueSize.argtype = (c_void_p, c_uint)
+ MvCamCtrldll.MV_CC_SetOutputQueueSize.restype = c_uint
+ return MvCamCtrldll.MV_CC_SetOutputQueueSize(self.handle, nOutputQueueSize)
+
+ ##
+ # @~chinese
+ # @brief 鑾峰彇璁惧淇℃伅锛屽彇娴佷箣鍓嶈皟鐢�
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param pstDevInfo [IN][OUT] 杩斿洖缁欒皟鐢ㄨ�呮湁鍏宠澶囦俊鎭粨鏋勪綋鎸囬拡
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+ # @remarks 鏀寔鐢ㄦ埛鍦ㄦ墦寮�璁惧鍚庤幏鍙栬澶囦俊鎭紝涓嶆敮鎸丟enTL璁惧
+ # 鑻ヨ璁惧鏄疓igE璁惧锛屽垯璋冪敤璇ユ帴鍙e瓨鍦ㄩ樆濉為闄╋紝鍥犳涓嶅缓璁湪鍙栨祦杩囩▼涓皟鐢ㄨ鎺ュ彛銆�
+
+ # @~english
+ # @brief Get device information
+ # @param handle [IN] Device handle
+ # @param pstDevInfo [IN][OUT] Structure pointer of device information
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks The API support users to access device information after opening the device锛宒on't support GenTL Devices
+ # If the device is a GigE camera, there is a blocking risk in calling the interface, so it is not recommended to call the interface during the fetching process.
+ def MV_CC_GetDeviceInfo(self, stDevInfo):
+ MvCamCtrldll.MV_CC_GetDeviceInfo.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_GetDeviceInfo.restype = c_uint
+ return MvCamCtrldll.MV_CC_GetDeviceInfo(self.handle, byref(stDevInfo))
+
+
+
+ ##
+ # @~chinese
+ # @brief 鑾峰彇鍚勭绫诲瀷鐨勪俊鎭�
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param pstInfo [IN][OUT] 杩斿洖缁欒皟鐢ㄨ�呮湁鍏宠澶囧悇绉嶇被鍨嬬殑淇℃伅缁撴瀯浣撴寚閽�
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+ # @remarks 鎺ュ彛閲岄潰杈撳叆闇�瑕佽幏鍙栫殑淇℃伅绫诲瀷锛堟寚瀹歁V_ALL_MATCH_INFO缁撴瀯浣撲腑鐨刵Type绫诲瀷锛夛紝鑾峰彇瀵瑰簲鐨勪俊鎭紙鍦∕V_ALL_MATCH_INFO缁撴瀯浣撲腑pInfo閲岃繑鍥烇級
+ # 璇ユ帴鍙g殑璋冪敤鍓嶇疆鏉′欢鍙栧喅浜庢墍鑾峰彇鐨勪俊鎭被鍨嬶紝鑾峰彇GigE璁惧鐨凪V_MATCH_TYPE_NET_DETECT淇℃伅闇�鍦ㄥ紑鍚姄鍥句箣鍚庤皟鐢紝鑾峰彇U3V璁惧鐨凪V_MATCH_TYPE_USB_DETECT淇℃伅闇�鍦ㄦ墦寮�璁惧涔嬪悗璋冪敤
+ # 淇℃伅绫诲瀷 MV_MATCH_TYPE_NET_DETECT 瀵瑰簲缁撴瀯浣揗V_MATCH_INFO_NET_DETECT锛� 鍙敮鎸丮V_GIGE_DEVICE鐩告満/MV_GENTL_GIGE_DEVICE鐩告満
+ # 淇℃伅绫诲瀷 MV_MATCH_TYPE_USB_DETECT 瀵瑰簲缁撴瀯浣揗V_MATCH_INFO_USB_DETECT锛� 鍙敮鎸丮V_USB_DEVICE 绫诲瀷鐩告満
+ # 璇ユ帴鍙d笉鏀寔MV_CAMERALINK_DEVICE璁惧銆�
+
+ # @~english
+ # @brief Get various type of information
+ # @param handle [IN] Device handle
+ # @param pstInfo [IN][OUT] Structure pointer of various type of information
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks Input required information type (specify nType in structure MV_ALL_MATCH_INFO) in the interface and get corresponding information (return in pInfo of structure MV_ALL_MATCH_INFO)
+ # The calling precondition of this interface is determined by obtained information type. Call after enabling capture to get MV_MATCH_TYPE_NET_DETECT information of GigE device,
+ # and call after starting device to get MV_MATCH_TYPE_USB_DETECT information of USB3Vision device.
+ # The information type MV_MATCH_TYPE_NET_DETECT corresponds to the structure MV_MATCH_INFO_NET_DETECT, which only supports cameras of MV_GIGE_DEVICE and MV_GENTL_GIGE_DEVICE types
+ # The information type MV_MATCH_TYPE_USB_DETECT corresponds to the structure MV_MATCH_INFO_USB_DETECT, which only supports cameras of MV_USB_DEVICE type
+ # This API is not supported by MV_CAMERALINK_DEVICE device.
+ def MV_CC_GetAllMatchInfo(self, stInfo):
+ MvCamCtrldll.MV_CC_GetAllMatchInfo.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_GetAllMatchInfo.restype = c_uint
+ return MvCamCtrldll.MV_CC_GetAllMatchInfo(self.handle, byref(stInfo))
+
+ ## @}
+
+
+ ## @addtogroup ch: 閲囬泦鍗$殑閰嶇疆 | en: Frame grabber control
+ ## @{
+
+ ##
+ # @~chinese
+ # @brief 鏋氫妇閲囬泦鍗�
+ # @param nTLayerType [IN] 閲囬泦鍗℃帴鍙g被鍨� eg: (MV_GIGE_INTERFACE | MV_CAMERALINK_INTERFACE | MV_CXP_INTERFACE| MV_XOF_INTERFACE | MV_VIR_INTERFACE | MV_LC_INTERFACE锛�
+ # @param pInterfaceInfoList [IN][OUT] 閲囬泦鍗″垪琛�
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璇ユ帴鍙d笉鏀寔arm鍜孡inux32骞冲彴
+
+ # @~english
+ # @brief enum Frame grabber
+ # @param nTLayerType [IN] Frame grabber Type eg: (MV_GIGE_INTERFACE | MV_CAMERALINK_INTERFACE | MV_CXP_INTERFACE| MV_XOF_INTERFACE | MV_VIR_INTERFACE | MV_LC_INTERFACE锛�
+ # @param pInterfaceInfoList [IN][OUT] Frame grabbe List
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This API do not support arm and Linux32 platform.
+ @staticmethod
+ def MV_CC_EnumInterfaces(nTLayerType, stInterfaceInfoList):
+ MvCamCtrldll.MV_CC_EnumInterfaces.argtype = (c_uint, c_void_p)
+ MvCamCtrldll.MV_CC_EnumInterfaces.restype = c_uint
+ return MvCamCtrldll.MV_CC_EnumInterfaces(c_uint(nTLayerType), byref(stInterfaceInfoList))
+
+ ##
+ # @~chinese
+ # @brief 鍒涘缓閲囬泦鍗″彞鏌�
+ # @param handle [OUT] 閲囬泦鍗″彞鏌�
+ # @param pInterfaceInfo [IN] 閲囬泦鍗′俊鎭�
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璇ユ帴鍙d笉鏀寔arm鍜孡inux32骞冲彴
+
+ # @~english
+ # @brief create Frame grabber handle
+ # @param handle [OUT] Frame grabber handle
+ # @param pInterfaceInfo [IN] Frame grabber Info
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This API do not support arm and Linux32 platform.
+ def MV_CC_CreateInterface(self, stInterfaceInfo):
+ MvCamCtrldll.MV_CC_CreateInterface.argtype = c_void_p
+ MvCamCtrldll.MV_CC_CreateInterface.restype = c_uint
+ return MvCamCtrldll.MV_CC_CreateInterface(byref(self.handle), byref(stInterfaceInfo))
+
+ ##
+ # @~chinese
+ # @brief 閫氳繃閲囬泦鍗D鍒涘缓閲囬泦鍗″彞鏌�
+ # @param handle [IN][OUT] 閲囬泦鍗″彞鏌�
+ # @param pInterfaceID [IN] 閲囬泦鍗D
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璇ユ帴鍙d笉鏀寔arm鍜孡inux32骞冲彴
+
+ # @~english
+ # @brief create Frame grabber handle by ID
+ # @param handle [IN][OUT] Frame grabber handle
+ # @param pInterfaceID [IN] Frame grabber ID
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This API do not support arm and Linux32 platform.
+ def MV_CC_CreateInterfaceByID(self, InterfaceID):
+ MvCamCtrldll.MV_CC_CreateInterfaceByID.argtype = c_void_p
+ MvCamCtrldll.MV_CC_CreateInterfaceByID.restype = c_uint
+ return MvCamCtrldll.MV_CC_CreateInterfaceByID(byref(self.handle), InterfaceID.encode('ascii'))
+
+ ##
+ # @~chinese
+ # @brief 鎵撳紑閲囬泦鍗�
+ # @param handle [IN] 閲囬泦鍗″彞鏌�
+ # @param pReserved [IN] 棰勭暀锛岀洿鎺ュ~NULL
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璇ユ帴鍙d笉鏀寔arm鍜孡inux32骞冲彴
+
+ # @~english
+ # @brief open Frame grabber
+ # @param handle [IN] Frame grabber handle
+ # @param pReserved [IN] Reserved锛宒efault NULL
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This API do not support arm and Linux32 platform.
+ def MV_CC_OpenInterface(self):
+ MvCamCtrldll.MV_CC_OpenInterface.argtype = c_void_p
+ MvCamCtrldll.MV_CC_OpenInterface.restype = c_uint
+ return MvCamCtrldll.MV_CC_OpenInterface(self.handle, 0)
+
+ ##
+ # @~chinese
+ # @brief 鍏抽棴閲囬泦鍗�
+ # @param handle [IN] 閲囬泦鍗″彞鏌�
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璇ユ帴鍙d笉鏀寔arm鍜孡inux32骞冲彴
+
+ # @~english
+ # @brief close Frame grabber
+ # @param handle [IN] Frame grabber handle
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This API do not support arm and Linux32 platform.
+ def MV_CC_CloseInterface(self):
+ MvCamCtrldll.MV_CC_CloseInterface.argtype = c_void_p
+ MvCamCtrldll.MV_CC_CloseInterface.restype = c_uint
+ return MvCamCtrldll.MV_CC_CloseInterface(self.handle)
+
+ ##
+ # @~chinese
+ # @brief 閿�姣侀噰闆嗗崱鍙ユ焺
+ # @param handle [IN]閲囬泦鍗″彞鏌�
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks MV_CC_DestroyInterface 濡傛灉浼犲叆鐩告満鍙ユ焺锛屽叾鏁堟灉鍜� MV_CC_DestroyHandle 鐩稿悓; 璇ユ帴鍙d笉鏀寔arm鍜孡inux32骞冲彴
+
+ # @~english
+ # @brief Destroy Frame grabber handle
+ # @param handle [IN] Frame grabber handle
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks If MV_CC_DestroyInterface passes in "Device handle", the effect is the same as the MV_CC_DestroyHandle. This API do not support arm and Linux32 platform.
+ def MV_CC_DestroyInterface(self):
+ MvCamCtrldll.MV_CC_DestroyInterface.argtype = c_void_p
+ MvCamCtrldll.MV_CC_DestroyInterface.restype = c_uint
+ return MvCamCtrldll.MV_CC_DestroyInterface(self.handle)
+
+
+ ##
+ # @~chinese
+ # @brief 閫氳繃閲囬泦鍗″彞鏌勬灇涓捐澶�
+ # @param handle [IN] 閲囬泦鍗″彞鏌�
+ # @param pstDevList [OUT] 璁惧鍒楄〃
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璁惧鍒楄〃鐨勫唴瀛樻槸鍦⊿DK鍐呴儴鍒嗛厤鐨勶紝澶氱嚎绋嬭皟鐢ㄨ鎺ュ彛鏃朵細杩涜璁惧鍒楄〃鍐呭瓨鐨勯噴鏀惧拰鐢宠
+ # 寤鸿灏介噺閬垮厤澶氱嚎绋嬫灇涓炬搷浣溿��
+
+ # @~english
+ # @brief Enumerate Devices with interface handle
+ # @param handle [IN] Interface information
+ # @param pstDevList [OUT] Device List
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks The memory of the list is allocated within the SDK. When the interface is invoked by multiple threads, the memory of the device list will be released and applied
+ # It is recommended to avoid multithreaded enumeration operations as much as possible.
+ def MV_CC_EnumDevicesByInterface(self, stDevList):
+ MvCamCtrldll.MV_CC_EnumDevicesByInterface.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_EnumDevicesByInterface.restype = c_uint
+ return MvCamCtrldll.MV_CC_EnumDevicesByInterface(self.handle, byref(stDevList))
+ ## @}
+
+
+ ## @addtogroup ch: 鐩告満/閲囬泦鍗″睘鎬т竾鑳介厤缃帴鍙� | en: Camera /Frame grabber attribute nodes universal interface
+ ## @{
+
+
+ ##
+ # @~chinese
+ # @brief 鑾峰彇Integer灞炴�у��
+ # @param handle [IN] 璁惧鍙ユ焺/閲囬泦鍗″彞鏌�
+ # @param strKey [IN] 灞炴�ч敭鍊硷紝濡傝幏鍙栧搴︿俊鎭垯涓�"Width"
+ # @param pstIntValue [IN][OUT] 杩斿洖缁欒皟鐢ㄨ�呮湁鍏宠澶囧睘鎬х粨鏋勪綋鎸囬拡
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+ # @remarks 杩炴帴璁惧涔嬪悗璋冪敤璇ユ帴鍙e彲浠ヨ幏鍙杋nt绫诲瀷鐨勬寚瀹氳妭鐐圭殑鍊笺��
+
+ # @~english
+ # @brief Get Integer value
+ # @param handle [IN] Device handle/Frame grabber handle
+ # @param strKey [IN] Key value, for example, using "Width" to get width
+ # @param pstIntValue [IN][OUT] Structure pointer of camera features
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks You can call this API to get the value of camera node with integer type after connecting the device.
+ def MV_CC_GetIntValueEx(self, strKey, stIntValue):
+ MvCamCtrldll.MV_CC_GetIntValueEx.argtype = (c_void_p, c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_GetIntValueEx.restype = c_uint
+ return MvCamCtrldll.MV_CC_GetIntValueEx(self.handle, strKey.encode('ascii'), byref(stIntValue))
+
+ ##
+ # @~chinese
+ # @brief 璁剧疆Integer鍨嬪睘鎬у��
+ # @param handle [IN] 璁惧鍙ユ焺/閲囬泦鍗″彞鏌�
+ # @param strKey [IN] 灞炴�ч敭鍊硷紝濡傝幏鍙栧搴︿俊鎭垯涓�"Width"
+ # @param nValue [IN] 鎯宠璁剧疆鐨勮澶囩殑灞炴�у��
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+ # @remarks 杩炴帴璁惧涔嬪悗璋冪敤璇ユ帴鍙e彲浠ヨ缃甶nt绫诲瀷鐨勬寚瀹氳妭鐐圭殑鍊笺��
+
+ # @~english
+ # @brief Set Integer value
+ # @param handle [IN] Device handle/Frame grabber handle
+ # @param strKey [IN] Key value, for example, using "Width" to set width
+ # @param nValue [IN] Feature value to set
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks You can call this API to get the value of camera node with integer type after connecting the device.
+ def MV_CC_SetIntValueEx(self, strKey, nValue):
+ MvCamCtrldll.MV_CC_SetIntValueEx.argtype = (c_void_p, c_void_p, c_int64)
+ MvCamCtrldll.MV_CC_SetIntValueEx.restype = c_uint
+ return MvCamCtrldll.MV_CC_SetIntValueEx(self.handle, strKey.encode('ascii'), c_int64(nValue))
+
+
+ ##
+ # @~chinese
+ # @brief 鑾峰彇Enum灞炴�у��
+ # @param handle [IN] 璁惧鍙ユ焺/閲囬泦鍗″彞鏌�
+ # @param strKey [IN] 灞炴�ч敭鍊硷紝濡傝幏鍙栧儚绱犳牸寮忎俊鎭垯涓�"PixelFormat"
+ # @param pstEnumValue [IN][OUT] 杩斿洖缁欒皟鐢ㄨ�呮湁鍏宠澶囧睘鎬х粨鏋勪綋鎸囬拡
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+ # @remarks 杩炴帴璁惧涔嬪悗璋冪敤璇ユ帴鍙e彲浠ヨ幏鍙朎num绫诲瀷鐨勬寚瀹氳妭鐐圭殑鍊笺��
+
+ # @~english
+ # @brief Get Enum value
+ # @param handle [IN] Device handle/Frame grabber handle
+ # @param strKey [IN] Key value, for example, using "PixelFormat" to get pixel format
+ # @param pstEnumValue [IN][OUT] Structure pointer of camera features
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks After the device is connected, call this interface to get specified Enum nodes.
+ def MV_CC_GetEnumValue(self, strKey, stEnumValue):
+ MvCamCtrldll.MV_CC_GetEnumValue.argtype = (c_void_p, c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_GetEnumValue.restype = c_uint
+ return MvCamCtrldll.MV_CC_GetEnumValue(self.handle, strKey.encode('ascii'), byref(stEnumValue))
+
+ ##
+ # @~chinese
+ # @brief 鑾峰彇Enum灞炴�у��
+ # @param handle [IN] 璁惧鍙ユ焺/閲囬泦鍗″彞鏌�
+ # @param strKey [IN] 灞炴�ч敭鍊硷紝濡傝幏鍙栧儚绱犳牸寮忎俊鎭垯涓�"PixelFormat"
+ # @param pstEnumValue [IN][OUT] 杩斿洖缁欒皟鐢ㄨ�呮湁鍏宠澶囧睘鎬х粨鏋勪綋鎸囬拡
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+ # @remarks 杩炴帴璁惧涔嬪悗璋冪敤璇ユ帴鍙e彲浠ヨ幏鍙朎num绫诲瀷鐨勬寚瀹氳妭鐐圭殑鍊�,鍖哄埆涓嶮V_CC_GetEnumValue,姝ゆ帴鍙h繑鍥炵殑鏋氫妇鏈夋晥涓暟鎵╁睍鍒�256涓��
+
+ # @~english
+ # @brief Get Enum value
+ # @param handle [IN] Device handle/Frame grabber handle
+ # @param strKey [IN] Key value, for example, using "PixelFormat" to get pixel format
+ # @param pstEnumValue [IN][OUT] Structure pointer of camera features
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks After the device is connected, call this interface to get specified Enum nodes.
+ # Comparing with the API MV_CC_GetEnumValue, this API expands the number of enumeration values up to 256.
+ def MV_CC_GetEnumValueEx(self, strKey, stEnumValue):
+ MvCamCtrldll.MV_CC_GetEnumValueEx.argtype = (c_void_p, c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_GetEnumValueEx.restype = c_uint
+ return MvCamCtrldll.MV_CC_GetEnumValueEx(self.handle, strKey.encode('ascii'), byref(stEnumValue))
+
+
+ ##
+ # @~chinese
+ # @brief 璁剧疆Enum鍨嬪睘鎬у��
+ # @param handle [IN] 璁惧鍙ユ焺/閲囬泦鍗″彞鏌�
+ # @param strKey [IN] 灞炴�ч敭鍊硷紝濡傝幏鍙栧儚绱犳牸寮忎俊鎭垯涓�"PixelFormat"
+ # @param nValue [IN] 鎯宠璁剧疆鐨勮澶囩殑灞炴�у��
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+ # @remarks 杩炴帴璁惧涔嬪悗璋冪敤璇ユ帴鍙e彲浠ヨ缃瓻num绫诲瀷鐨勬寚瀹氳妭鐐圭殑鍊笺��
+
+ # @~english
+ # @brief Set Enum value
+ # @param handle [IN] Device handle/Frame grabber handle
+ # @param strKey [IN] Key value, for example, using "PixelFormat" to set pixel format
+ # @param nValue [IN] Feature value to set
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks After the device is connected, call this interface to set specified Enum nodes.
+ def MV_CC_SetEnumValue(self, strKey, nValue):
+ MvCamCtrldll.MV_CC_SetEnumValue.argtype = (c_void_p, c_void_p, c_uint32)
+ MvCamCtrldll.MV_CC_SetEnumValue.restype = c_uint
+ return MvCamCtrldll.MV_CC_SetEnumValue(self.handle, strKey.encode('ascii'), c_uint32(nValue))
+
+ ##
+ # @~chinese
+ # @brief 鑾峰彇Enum鍨嬭妭鐐规寚瀹氬�肩殑绗﹀彿
+ # @param handle [IN] 璁惧鍙ユ焺/閲囬泦鍗″彞鏌�
+ # @param strKey [IN] 灞炴�ч敭鍊硷紝濡傝幏鍙栧儚绱犳牸寮忎俊鎭垯涓�"PixelFormat"
+ # @param pstEnumEntry [IN][OUT] 鎯宠鑾峰彇鐨勮澶囩殑灞炴�х鍙�
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+ # @remarks 杩炴帴璁惧涔嬪悗璋冪敤璇ユ帴鍙e彲浠ヨ幏鍙朎num绫诲瀷鐨勬寚瀹氳妭鐐圭殑鍊兼墍瀵瑰簲鐨勭鍙枫��
+
+ # @~english
+ # @brief Get the symbolic of the specified value of the Enum type node
+ # @param handle [IN] Device handle/Frame grabber handle
+ # @param strKey [IN] Key value, for example, using "PixelFormat" to set pixel format
+ # @param pstEnumEntry [IN][OUT] Symbolic to get
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks Call this interface after connecting the device to obtain the symbol corresponding to the value of the specified node of Enum type.
+ def MV_CC_GetEnumEntrySymbolic(self, strKey, stEnumEntry):
+ MvCamCtrldll.MV_CC_GetEnumEntrySymbolic.argtype = (c_void_p, c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_GetEnumEntrySymbolic.restype = c_uint
+ return MvCamCtrldll.MV_CC_GetEnumEntrySymbolic(self.handle, strKey.encode('ascii'), byref(stEnumEntry))
+
+ ##
+ # @~chinese
+ # @brief 璁剧疆Enum鍨嬪睘鎬у��
+ # @param handle [IN] 璁惧鍙ユ焺/閲囬泦鍗″彞鏌�
+ # @param strKey [IN] 灞炴�ч敭鍊硷紝濡傝幏鍙栧儚绱犳牸寮忎俊鎭垯涓�"PixelFormat"
+ # @param strValue [IN] 鎯宠璁剧疆鐨勮澶囩殑灞炴�у瓧绗︿覆
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+ # @remarks 杩炴帴璁惧涔嬪悗璋冪敤璇ユ帴鍙e彲浠ヨ缃瓻num绫诲瀷鐨勬寚瀹氳妭鐐圭殑鍊笺��
+
+ # @~english
+ # @brief Set Enum value
+ # @param handle [IN] Device handle/Frame grabber handle
+ # @param strKey [IN] Key value, for example, using "PixelFormat" to set pixel format
+ # @param strValue [IN] Feature String to set
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks After the device is connected, call this interface to set specified Enum nodes.
+ def MV_CC_SetEnumValueByString(self, strKey, sValue):
+ MvCamCtrldll.MV_CC_SetEnumValueByString.argtype = (c_void_p, c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_SetEnumValueByString.restype = c_uint
+ return MvCamCtrldll.MV_CC_SetEnumValueByString(self.handle, strKey.encode('ascii'), sValue.encode('ascii'))
+
+
+ ##
+ # @~chinese
+ # @brief 鑾峰彇Float灞炴�у��
+ # @param handle [IN] 璁惧鍙ユ焺/閲囬泦鍗″彞鏌�
+ # @param strKey [IN] 灞炴�ч敭鍊�
+ # @param pstFloatValue [IN][OUT] 杩斿洖缁欒皟鐢ㄨ�呮湁鍏宠澶囧睘鎬х粨鏋勪綋鎸囬拡
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+ # @remarks 杩炴帴璁惧涔嬪悗璋冪敤璇ユ帴鍙e彲浠ヨ幏鍙杅loat绫诲瀷鐨勬寚瀹氳妭鐐圭殑鍊笺��
+
+ # @~english
+ # @brief Get Float value
+ # @param handle [IN] Device handle/Frame grabber handle
+ # @param strKey [IN] Key value
+ # @param pstFloatValue [IN][OUT] Structure pointer of camera features
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks After the device is connected, call this interface to get specified float node.
+ def MV_CC_GetFloatValue(self, strKey, stFloatValue):
+ MvCamCtrldll.MV_CC_GetFloatValue.argtype = (c_void_p, c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_GetFloatValue.restype = c_uint
+ return MvCamCtrldll.MV_CC_GetFloatValue(self.handle, strKey.encode('ascii'), byref(stFloatValue))
+
+ ##
+ # @~chinese
+ # @brief 璁剧疆float鍨嬪睘鎬у��
+ # @param handle [IN] 璁惧鍙ユ焺/閲囬泦鍗″彞鏌�
+ # @param strKey [IN] 灞炴�ч敭鍊�
+ # @param fValue [IN] 鎯宠璁剧疆鐨勮澶囩殑灞炴�у��
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+ # @remarks 杩炴帴璁惧涔嬪悗璋冪敤璇ユ帴鍙e彲浠ヨ缃甪loat绫诲瀷鐨勬寚瀹氳妭鐐圭殑鍊笺��
+
+ # @~english
+ # @brief Set float value
+ # @param handle [IN] Device handle/Frame grabber handle
+ # @param strKey [IN] Key value
+ # @param fValue [IN] Feature value to set
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks After the device is connected, call this interface to set specified float node.
+ def MV_CC_SetFloatValue(self, strKey, fValue):
+ MvCamCtrldll.MV_CC_SetFloatValue.argtype = (c_void_p, c_void_p, c_float)
+ MvCamCtrldll.MV_CC_SetFloatValue.restype = c_uint
+ return MvCamCtrldll.MV_CC_SetFloatValue(self.handle, strKey.encode('ascii'), c_float(fValue))
+
+ ##
+ # @~chinese
+ # @brief 鑾峰彇Boolean灞炴�у��
+ # @param handle [IN] 璁惧鍙ユ焺/閲囬泦鍗″彞鏌�
+ # @param strKey [IN] 灞炴�ч敭鍊�
+ # @param pbValue [IN][OUT] 杩斿洖缁欒皟鐢ㄨ�呮湁鍏宠澶囧睘鎬у��
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+ # @remarks 杩炴帴璁惧涔嬪悗璋冪敤璇ユ帴鍙e彲浠ヨ幏鍙朾ool绫诲瀷鐨勬寚瀹氳妭鐐圭殑鍊笺��
+
+ # @~english
+ # @brief Get Boolean value
+ # @param handle [IN] Device handle/Frame grabber handle
+ # @param strKey [IN] Key value
+ # @param pbValue [IN][OUT] Structure pointer of camera features
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks After the device is connected, call this interface to get specified bool nodes.
+ def MV_CC_GetBoolValue(self, strKey, BoolValue):
+ MvCamCtrldll.MV_CC_GetBoolValue.argtype = (c_void_p, c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_GetBoolValue.restype = c_uint
+ return MvCamCtrldll.MV_CC_GetBoolValue(self.handle, strKey.encode('ascii'), byref(BoolValue))
+
+ ##
+ # @~chinese
+ # @brief 璁剧疆Boolean鍨嬪睘鎬у��
+ # @param handle [IN] 璁惧鍙ユ焺/閲囬泦鍗″彞鏌�
+ # @param strKey [IN] 灞炴�ч敭鍊�
+ # @param bValue [IN] 鎯宠璁剧疆鐨勮澶囩殑灞炴�у��
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+ # @remarks 杩炴帴璁惧涔嬪悗璋冪敤璇ユ帴鍙e彲浠ヨ缃産ool绫诲瀷鐨勬寚瀹氳妭鐐圭殑鍊笺��
+
+ # @~english
+ # @brief Set Boolean value
+ # @param handle [IN] Device handle/Frame grabber handle
+ # @param strKey [IN] Key value
+ # @param bValue [IN] Feature value to set
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks After the device is connected, call this interface to set specified bool nodes.
+ def MV_CC_SetBoolValue(self, strKey, bValue):
+ MvCamCtrldll.MV_CC_SetBoolValue.argtype = (c_void_p, c_void_p, c_bool)
+ MvCamCtrldll.MV_CC_SetBoolValue.restype = c_uint
+ return MvCamCtrldll.MV_CC_SetBoolValue(self.handle, strKey.encode('ascii'), bValue)
+
+ ##
+ # @~chinese
+ # @brief 鑾峰彇String灞炴�у��
+ # @param handle [IN] 璁惧鍙ユ焺/閲囬泦鍗″彞鏌�
+ # @param strKey [IN] 灞炴�ч敭鍊�
+ # @param pstStringValue [IN][OUT] 杩斿洖缁欒皟鐢ㄨ�呮湁鍏宠澶囧睘鎬х粨鏋勪綋鎸囬拡
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+ # @remarks 杩炴帴璁惧涔嬪悗璋冪敤璇ユ帴鍙e彲浠ヨ幏鍙杝tring绫诲瀷鐨勬寚瀹氳妭鐐圭殑鍊笺��
+
+ # @~english
+ # @brief Get String value
+ # @param handle [IN] Device handle/Frame grabber handle
+ # @param strKey [IN] Key value
+ # @param pstStringValue [IN][OUT] Structure pointer of camera features
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks After the device is connected, call this interface to get specified string nodes.
+ def MV_CC_GetStringValue(self, strKey, StringValue):
+ MvCamCtrldll.MV_CC_GetStringValue.argtype = (c_void_p, c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_GetStringValue.restype = c_uint
+ return MvCamCtrldll.MV_CC_GetStringValue(self.handle, strKey.encode('ascii'), byref(StringValue))
+
+ ##
+ # @~chinese
+ # @brief 璁剧疆String鍨嬪睘鎬у��
+ # @param handle [IN] 璁惧鍙ユ焺/閲囬泦鍗″彞鏌�
+ # @param strKey [IN] 灞炴�ч敭鍊�
+ # @param strValue [IN] 鎯宠璁剧疆鐨勮澶囩殑灞炴�у��
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+ # @remarks 杩炴帴璁惧涔嬪悗璋冪敤璇ユ帴鍙e彲浠ヨ缃畇tring绫诲瀷鐨勬寚瀹氳妭鐐圭殑鍊笺��
+
+ # @~english
+ # @brief Set String value
+ # @param handle [IN] Device handle/Frame grabber handle
+ # @param strKey [IN] Key value
+ # @param strValue [IN] Feature value to set
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks After the device is connected, call this interface to set specified string nodes.
+ def MV_CC_SetStringValue(self, strKey, sValue):
+ MvCamCtrldll.MV_CC_SetStringValue.argtype = (c_void_p, c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_SetStringValue.restype = c_uint
+ return MvCamCtrldll.MV_CC_SetStringValue(self.handle, strKey.encode('ascii'), sValue.encode('ascii'))
+
+ ##
+ # @~chinese
+ # @brief 璁剧疆Command鍨嬪睘鎬у��
+ # @param handle [IN] 璁惧鍙ユ焺/閲囬泦鍗″彞鏌�
+ # @param strKey [IN] 灞炴�ч敭鍊�
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+ # @remarks 杩炴帴璁惧涔嬪悗璋冪敤璇ユ帴鍙e彲浠ヨ缃寚瀹氱殑Command绫诲瀷鑺傜偣銆�
+
+ # @~english
+ # @brief Send Command
+ # @param handle [IN] Device handle/Frame grabber handle
+ # @param strKey [IN] Key value
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks After the device is connected, call this interface to set specified Command nodes.
+ def MV_CC_SetCommandValue(self, strKey):
+ MvCamCtrldll.MV_CC_SetCommandValue.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_SetCommandValue.restype = c_uint
+ return MvCamCtrldll.MV_CC_SetCommandValue(self.handle, strKey.encode('ascii'))
+
+ ##
+ # @~chinese
+ # @brief 璇诲唴瀛�
+ # @param handle [IN] 璁惧鍙ユ焺/閲囬泦鍗″彞鏌�
+ # @param pBuffer [IN][OUT] 浣滀负杩斿洖鍊间娇鐢紝淇濆瓨璇诲埌鐨勫唴瀛樺�硷紙GEV璁惧鍐呭瓨鍊兼槸鎸夌収澶х妯″紡瀛樺偍鐨勶紝閲囬泦鍗¤澶囧拰閲囬泦鍗′笅鐩告満鎸夌収澶х瀛樺偍锛屽叾瀹冨崗璁澶囨寜鐓у皬绔瓨鍌級
+ # @param nAddress [IN] 寰呰鍙栫殑鍐呭瓨鍦板潃锛岃鍦板潃鍙互浠庤澶囩殑Camera.xml鏂囦欢涓幏鍙栵紝褰㈠xxx_RegAddr鐨剎ml鑺傜偣鍊�
+ # @param nLength [IN] 寰呰鍙栫殑鍐呭瓨闀垮害
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+ # @remarks 璇诲彇璁惧鏌愭瀵勫瓨鍣ㄧ殑鏁版嵁
+
+ # @~english
+ # @brief Read Memory
+ # @param handle [IN] Device Handle/Frame grabber handle
+ # @param pBuffer [IN][OUT] Used as a return value, save the read-in memory value ( The memory value of GEV devices is stored in the big end mode, with the capture card device and the camera under the capture card stored in the big end mode, and other protocol devices stored in the small end mode)
+ # @param nAddress [IN] Memory address to be read, which can be obtained from the Camera.xml file of the device, the form xml node value of xxx_RegAddr
+ # @param nLength [IN] Length of the memory to be read
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks Read the data of a certain segment of the device's registers.
+ def MV_CC_ReadMemory(self, pBuffer, nAddress, nLength):
+ MvCamCtrldll.MV_CC_ReadMemory.argtype = (c_void_p, c_void_p, c_int64, c_int64)
+ MvCamCtrldll.MV_CC_ReadMemory.restype = c_uint
+ return MvCamCtrldll.MV_CC_ReadMemory(self.handle, pBuffer, c_int64(nAddress), c_int64(nLength))
+
+ ##
+ # @~chinese
+ # @brief 鍐欏唴瀛�
+ # @param handle [IN] 璁惧鍙ユ焺/閲囬泦鍗″彞鏌�
+ # @param pBuffer [IN] 寰呭啓鍏ョ殑鍐呭瓨鍊硷紙娉ㄦ剰GEV璁惧鍐呭瓨鍊艰鎸夌収澶х妯″紡瀛樺偍锛岄噰闆嗗崱璁惧鍜岄噰闆嗗崱涓嬬浉鏈烘寜鐓уぇ绔瓨鍌紝鍏跺畠鍗忚璁惧鎸夌収灏忕瀛樺偍锛�
+ # @param nAddress [IN] 寰呭啓鍏ョ殑鍐呭瓨鍦板潃锛岃鍦板潃鍙互浠庤澶囩殑Camera.xml鏂囦欢涓幏鍙栵紝褰㈠xxx_RegAddr鐨剎ml鑺傜偣鍊�
+ # @param nLength [IN] 寰呭啓鍏ョ殑鍐呭瓨闀垮害
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+ # @remarks 璁块棶璁惧锛屾妸涓�娈垫暟鎹啓鍏ユ煇娈靛瘎瀛樺櫒銆�
+
+ # @~english
+ # @brief Write Memory
+ # @param handle [IN] Device Handle/Frame grabber handle
+ # @param pBuffer [IN] Memory value to be written ( Note The memory value of GEV devices is stored in the big end mode, with the capture card device and the camera under the capture card stored in the big end mode, and other protocol devices stored in the small end mode)
+ # @param nAddress [IN] Memory address to be written, which can be obtained from the Camera.xml file of the device, the form xml node value of xxx_RegAddr
+ # @param nLength [IN] Length of the memory to be written
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks Access device, write a piece of data into a certain segment of register.
+ def MV_CC_WriteMemory(self, pBuffer, nAddress, nLength):
+ MvCamCtrldll.MV_CC_WriteMemory.argtype = (c_void_p, c_void_p, c_int64, c_int64)
+ MvCamCtrldll.MV_CC_WriteMemory.restype = c_uint
+ return MvCamCtrldll.MV_CC_WriteMemory(self.handle, pBuffer, c_int64(nAddress), c_int64(nLength))
+
+ ##
+ # @~chinese
+ # @brief 娓呴櫎GenICam鑺傜偣缂撳瓨
+ # @param handle [IN] 璁惧鍙ユ焺/閲囬泦鍗″彞鏌�
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+
+ # @~english
+ # @brief Invalidate GenICam Nodes
+ # @param handle [IN] Device handle/Frame grabber handle
+ # @return Success, return MV_OK. Failure, return error code
+ def MV_CC_InvalidateNodes(self):
+ MvCamCtrldll.MV_CC_InvalidateNodes.argtype = (c_void_p)
+ MvCamCtrldll.MV_CC_InvalidateNodes.restype = c_uint
+ return MvCamCtrldll.MV_CC_InvalidateNodes(self.handle)
+
+ ##
+ # @~chinese
+ # @brief 鑾峰彇璁惧灞炴�ф爲XML
+ # @param handle [IN] 璁惧鍙ユ焺/閲囬泦鍗″彞鏌�
+ # @param pData [IN][OUT] XML鏁版嵁鎺ユ敹缂撳瓨
+ # @param nDataSize [IN] 鎺ユ敹缂撳瓨澶у皬
+ # @param pnDataLen [IN][OUT] 瀹為檯鏁版嵁澶у皬
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 褰損Data涓篘ULL鎴杗DataSize姣斿疄闄呯殑xml鏂囦欢灏忔椂锛屼笉鎷疯礉鏁版嵁锛岀敱pnDataLen杩斿洖xml鏂囦欢澶у皬
+ # 褰損Data涓烘湁鏁堢紦瀛樺湴鍧�锛屼笖缂撳瓨瓒冲澶ф椂锛屾嫹璐濆畬鏁存暟鎹繚瀛樺湪璇ョ紦瀛橀噷闈紝骞剁敱pnDataLen杩斿洖xml鏂囦欢瀹為檯澶у皬銆�
+
+ # @~english
+ # @brief Get camera feature tree XML
+ # @param handle [IN] Device handle/Frame grabber handle
+ # @param pData [IN][OUT] XML data receiving buffer
+ # @param nDataSize [IN] Buffer size
+ # @param pnDataLen [IN][OUT] Actual data length
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks When pData is NULL or nDataSize than the actual XML file hours, do not copy the data, returned by pnDataLen XML file size.
+ # When pData is a valid cache address and the cache is large enough, copy the full data into the cache, and pnDataLen returns the actual size of the XML file.
+ def MV_XML_GetGenICamXML(self, pData, nDataSize, pnDataLen):
+ MvCamCtrldll.MV_XML_GetGenICamXML.argtype = (c_void_p, c_void_p, c_uint, c_void_p)
+ MvCamCtrldll.MV_XML_GetGenICamXML.restype = c_uint
+ return MvCamCtrldll.MV_XML_GetGenICamXML(self.handle, pData, c_uint(nDataSize), byref(pnDataLen))
+
+ ##
+ # @~chinese
+ # @brief 鑾峰緱褰撳墠鑺傜偣鐨勮闂ā寮�
+ # @param handle [IN] 璁惧鍙ユ焺/閲囬泦鍗″彞鏌�
+ # @param strName [IN] 鑺傜偣鍚嶇О
+ # @param penAccessMode [IN][OUT] 鑺傜偣鐨勮闂ā寮�
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+
+ # @~english
+ # @brief Get Access mode of cur node
+ # @param handle [IN] Device handle/Frame grabber handle
+ # @param strName [IN] Name of node
+ # @param penAccessMode [IN][OUT] Access mode of the node
+ # @return Success, return MV_OK. Failure, return error code
+ def MV_XML_GetNodeAccessMode(self, strName, penAccessMode):
+ MvCamCtrldll.MV_XML_GetNodeAccessMode.argtype = (c_void_p, c_void_p, c_void_p)
+ MvCamCtrldll.MV_XML_GetNodeAccessMode.restype = c_uint
+ return MvCamCtrldll.MV_XML_GetNodeAccessMode(self.handle, strName.encode('ascii'), byref(penAccessMode))
+
+ ##
+ # @~chinese
+ # @brief 鑾峰緱褰撳墠鑺傜偣鐨勭被鍨�
+ # @param handle [IN] 璁惧鍙ユ焺/閲囬泦鍗″彞鏌�
+ # @param strName [IN] 鑺傜偣鍚嶇О
+ # @param penInterfaceType [IN][OUT] 鑺傜偣鐨勭被鍨�
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璇ユ帴鍙e彲浠ュ湪璋冪敤MV_CC_GetIntValueEx銆丮V_CC_SetIntValueEx 绛変竾鑳芥帴鍙d箣鍓嶏紝鎻愬墠鐭ラ亾鑺傜偣绫诲瀷锛屾柟渚跨敤鎴烽�夋嫨鍚堥�傜殑涓囪兘鎺ュ彛杩涜鑺傜偣鍊肩殑璁剧疆鍜岃幏鍙栥��
+
+ # @~english
+ # @brief Get Interface Type of cur node
+ # @param handle [IN] Device handle/Frame grabber handle
+ # @param strName [IN] Name of node
+ # @param penInterfaceType [IN][OUT] Interface Type of the node
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This interface can allow users to know the node type in advance before calling universal interfaces such as MV_CC_GetIntValueEx and MV_CC_SetIntValueEx, facilitating the selection of appropriate interfaces for setting and obtaining node values.
+ def MV_XML_GetNodeInterfaceType(self, strName, penInterfaceType):
+ MvCamCtrldll.MV_XML_GetNodeInterfaceType.argtype = (c_void_p, c_void_p, c_void_p)
+ MvCamCtrldll.MV_XML_GetNodeInterfaceType.restype = c_uint
+ return MvCamCtrldll.MV_XML_GetNodeInterfaceType(self.handle, strName.encode('ascii'), byref(penInterfaceType))
+ ##
+ # @~chinese
+ # @brief 淇濆瓨璁惧灞炴��
+ # @param handle [IN] 璁惧鍙ユ焺/閲囬泦鍗″彞鏌�
+ # @param strFileName [IN] 灞炴�ф枃浠跺悕
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+
+ # @~english
+ # @brief Save camera feature
+ # @param handle [IN] Device handle/Frame grabber handle
+ # @param strFileName [IN] File name
+ # @return Success, return MV_OK. Failure, return error code
+ def MV_CC_FeatureSave(self, strFileName):
+ MvCamCtrldll.MV_CC_FeatureSave.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_FeatureSave.restype = c_uint
+ return MvCamCtrldll.MV_CC_FeatureSave(self.handle, strFileName.encode('ascii'))
+
+ ##
+ # @~chinese
+ # @brief 瀵煎叆璁惧灞炴��
+ # @param handle [IN] 璁惧鍙ユ焺/閲囬泦鍗″彞鏌�
+ # @param strFileName [IN] 灞炴�ф枃浠跺悕
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+
+ # @~english
+ # @brief Load camera feature
+ # @param handle [IN] Device handle/Frame grabber handle
+ # @param strFileName [IN] File name
+ # @return Success, return MV_OK. Failure, return error code
+ def MV_CC_FeatureLoad(self, strFileName):
+ MvCamCtrldll.MV_CC_FeatureLoad.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_FeatureLoad.restype = c_uint
+ return MvCamCtrldll.MV_CC_FeatureLoad(self.handle, strFileName.encode('ascii'))
+
+
+ ##
+ # @~chinese
+ # @brief 瀵煎叆璁惧灞炴�у苟淇濆瓨閿欒淇℃伅鍒楄〃
+ # @param handle [IN] 璁惧鍙ユ焺/閲囬泦鍗″彞鏌�
+ # @param strFileName [IN] 灞炴�ф枃浠跺悕
+ # @param stNodeErrorList [IN OUT] 閿欒淇℃伅鍒楄〃锛岀敱鐢ㄦ埛鍦ㄥ閮ㄧ敵璇峰苟鐢卞唴閮ㄥ~鍏呮暟鎹紝璇ュ弬鏁板厑璁稿~null浠h〃鐢ㄦ埛涓嶅叧蹇冨鍏ユ椂鐨勯敊璇俊鎭�
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 閮ㄥ垎鑺傜偣瀵煎叆澶辫触鏃讹紝鎺ュ彛杩斿洖MV_OK锛岄�氳繃閿欒淇℃伅鍒楄〃涓璼tNodeError鑾峰彇鍑洪敊鑺傜偣鍙婂け璐ュ師鍥�
+
+ # @~english
+ # @brief Load camera feature with error message list
+ # @param handle [IN] Device handle/Frame grabber handle
+ # @param strFileName [IN] File name
+ # @param pstNodeErrorList [IN OUT] Error message list, requested by the user externally and filled with data internally, \n
+ # this parameter allows null to indicate that the user is not concerned about error information during import.
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks When some nodes fail to load, the interface returns MV_OK. \n
+ # The error node and the reason for the failure are obtained through stNodeError in the error message list.
+ def MV_CC_FeatureLoadEx(self, strFileName, pstNodeErrorList):
+ MvCamCtrldll.MV_CC_FeatureLoadEx.argtype = (c_void_p, c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_FeatureLoadEx.restype = c_uint
+ return MvCamCtrldll.MV_CC_FeatureLoadEx(self.handle, strFileName.encode('ascii'), byref(pstNodeErrorList))
+
+ ##
+ # @~chinese
+ # @brief 浠庤澶囪鍙栨枃浠�
+ # @param handle [IN] 璁惧鍙ユ焺/閲囬泦鍗″彞鏌�
+ # @param pstFileAccess [IN] 鏂囦欢瀛樺彇缁撴瀯浣�
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+
+ # @~english
+ # @brief Read the file from the camera
+ # @param handle [IN] Device handle/Frame grabber handle
+ # @param pstFileAccess [IN] File access structure
+ # @return Success, return MV_OK. Failure, return error code
+ def MV_CC_FileAccessRead(self, stFileAccess):
+ MvCamCtrldll.MV_CC_FileAccessRead.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_FileAccessRead.restype = c_uint
+ return MvCamCtrldll.MV_CC_FileAccessRead(self.handle, byref(stFileAccess))
+
+ ##
+ # @~chinese
+ # @brief 浠庤澶囪鍙栨枃浠�,鏂囦欢鏄疍ata鏁版嵁
+ # @param handle [IN] 璁惧鍙ユ焺/閲囬泦鍗″彞鏌�
+ # @param pstFileAccessEx [IN] 鏂囦欢瀛樺彇缁撴瀯浣�
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮� 閬垮厤鏂囦欢鎿嶄綔鏉冮檺闂璇诲け璐�
+
+ # @~english
+ # @brief Read the file data from the camera
+ # @param handle [IN] Device handle/Frame grabber handle
+ # @param pstFileAccessEx [IN] File access structure
+ # @return Success, return MV_OK. Failure, return error code
+ def MV_CC_FileAccessReadEx(self, pstFileAccessEx):
+ MvCamCtrldll.MV_CC_FileAccessReadEx.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_FileAccessReadEx.restype = c_uint
+ return MvCamCtrldll.MV_CC_FileAccessReadEx(self.handle, byref(pstFileAccessEx))
+
+ ##
+ # @~chinese
+ # @brief 灏嗘枃浠跺啓鍏ヨ澶�
+ # @param handle [IN] 璁惧鍙ユ焺/閲囬泦鍗″彞鏌�
+ # @param pstFileAccess [IN] 鏂囦欢瀛樺彇缁撴瀯浣�
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+
+ # @~english
+ # @brief Write the file to camera
+ # @param handle [IN] Device handle/Frame grabber handle
+ # @param pstFileAccess [IN] File access structure
+ # @return Success, return MV_OK. Failure, return error code
+ def MV_CC_FileAccessWrite(self, stFileAccess):
+ MvCamCtrldll.MV_CC_FileAccessWrite.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_FileAccessWrite.restype = c_uint
+ return MvCamCtrldll.MV_CC_FileAccessWrite(self.handle, byref(stFileAccess))
+
+ ##
+ # @~chinese
+ # @brief 灏嗙紦瀛�(buffer)鍐欏叆璁惧
+ # @param handle [IN] 璁惧鍙ユ焺/閲囬泦鍗″彞鏌�
+ # @param pstFileAccessEx [IN][OUT] 鏂囦欢瀛樺彇缁撴瀯浣�
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璇ユ帴鍙g洿鎺ヤ娇鐢ㄧ紦瀛樻暟鎹紝杩涜璇诲啓鎿嶄綔锛岄伩鍏嶇洿鎺ユ搷浣滄枃浠跺嚭鐜版棤鏉冮檺鐨勯棶棰�,鏄疢V_CC_FileAccessWrite鐨勬墿灞曟帴鍙�
+
+ # @~english
+ # @brief Write the data(buffer) to camera
+ # @param handle [IN] Device handle/Frame grabber handle
+ # @param pstFileAccessEx [IN][OUT] File access structure
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This interface uses cached data for read and write,solve the problem of no permissions in direct operation files, it's an extended interface of MV_CC_FileAccessWrite.
+ def MV_CC_FileAccessWriteEx(self, pstFileAccessEx):
+ MvCamCtrldll.MV_CC_FileAccessWriteEx.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_FileAccessWriteEx.restype = c_uint
+ return MvCamCtrldll.MV_CC_FileAccessWriteEx(self.handle, byref(pstFileAccessEx))
+
+ ##
+ # @~chinese
+ # @brief 鑾峰彇鏂囦欢瀛樺彇鐨勮繘搴�
+ # @param handle [IN] 璁惧鍙ユ焺/閲囬泦鍗″彞鏌�
+ # @param pstFileAccessProgress [IN][OUT] 杩涘害鍐呭
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮� 锛堝綋鍓嶆枃浠跺瓨鍙栫殑鐘舵�侊級
+
+ # @~english
+ # @brief Get File Access Progress
+ # @param handle [IN] Device handle/Frame grabber handle
+ # @param pstFileAccessProgress [IN][OUT] File access Progress
+ # @return Success, return MV_OK. Failure, return error code
+ def MV_CC_GetFileAccessProgress(self, pstFileAccessProgress):
+ MvCamCtrldll.MV_CC_GetFileAccessProgress.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_GetFileAccessProgress.restype = c_uint
+ return MvCamCtrldll.MV_CC_GetFileAccessProgress(self.handle, byref(pstFileAccessProgress))
+ ## @}
+
+
+ ## @addtogroup ch: 鐩告満鍜岄噰闆嗗崱 鍗囩骇 | en: Camera /Frame grabber upgrade
+ ## @{
+
+ ##
+ # @~chinese
+ # @brief 璁惧鏈湴鍗囩骇
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param strFilePathName [IN] 鏂囦欢鍚�
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+ # @remarks 閫氳繃璇ユ帴鍙e彲浠ュ皢鍗囩骇鍥轰欢鏂囦欢鍙戦�佺粰璁惧杩涜鍗囩骇銆�
+ # 璇ユ帴鍙i渶瑕佺瓑寰呭崌绾у浐浠舵枃浠舵垚鍔熶紶缁欒澶囩涔嬪悗鍐嶈繑鍥烇紝鍝嶅簲鏃堕棿鍙兘杈冮暱銆�
+
+ # @~english
+ # @brief Device Local Upgrade
+ # @param handle [IN] Device handle
+ # @param strFilePathName [IN] File name
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks Call this API to send the upgrade firmware to the device for upgrade.
+ # This API will wait for return until the upgrade firmware is sent to the device, this response may take a long time.
+ # For CameraLink device, it keeps sending upgrade firmware continuously.
+ def MV_CC_LocalUpgrade(self, strFilePathName):
+ MvCamCtrldll.MV_CC_LocalUpgrade.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_LocalUpgrade.restype = c_uint
+ return MvCamCtrldll.MV_CC_LocalUpgrade(self.handle, strFilePathName.encode('ascii'))
+
+ ##
+ # @~chinese
+ # @brief 鑾峰彇鍗囩骇杩涘害
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param pnProcess [IN][OUT] 杩涘害鎺ユ敹鍦板潃
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+
+ # @~english
+ # @brief Get Upgrade Progress
+ # @param handle [IN] Device handle
+ # @param pnProcess [IN][OUT] Progress receiving address
+ # @return Success, return MV_OK. Failure, return error code
+ def MV_CC_GetUpgradeProcess(self, nProcess):
+ MvCamCtrldll.MV_CC_GetUpgradeProcess.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_GetUpgradeProcess.restype = c_uint
+ return MvCamCtrldll.MV_CC_GetUpgradeProcess(self.handle, byref(nProcess))
+ ## @}
+
+
+
+ ## @addtogroup ch: 鐩告満鍜岄噰闆嗗崱 娉ㄥ唽寮傚父鍥炶皟鍜屼簨浠舵帴鍙� | en: Camera /Frame Enrol abnormal callbacks and event interface
+ ## @{
+
+
+ ##
+ # @~chinese
+ # @brief 娉ㄥ唽寮傚父娑堟伅鍥炶皟锛屽湪鎵撳紑璁惧涔嬪悗璋冪敤
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param cbException [IN] 寮傚父鍥炶皟鍑芥暟鎸囬拡
+ # @param pUser [IN] 鐢ㄦ埛鑷畾涔夊彉閲�
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+ # @remarks 璇ユ帴鍙i渶瑕佸湪MV_CC_OpenDevice鎵撳紑璁惧涔嬪悗璋冪敤銆�
+ # 璁惧寮傚父鏂紑杩炴帴鍚庡彲浠ュ湪鍥炶皟閲岄潰鑾峰彇鍒板紓甯告秷鎭紝GigE璁惧鎺夌嚎涔嬪悗闇�瑕佸厛璋冪敤MV_CC_CloseDevice鎺ュ彛鍏抽棴璁惧锛屽啀璋冪敤MV_CC_OpenDevice鎺ュ彛閲嶆柊鎵撳紑璁惧銆�
+
+ # @~english
+ # @brief Register Exception Message CallBack, call after open device
+ # @param handle [IN] Device handle
+ # @param cbException [IN] Exception Message CallBack Function Pointer
+ # @param pUser [IN] User defined variable
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks Call this interface after the device is opened by MV_CC_OpenDevice.
+ # When device is exceptionally disconnected, the exception message can be obtained from callback function. For Disconnected GigE device,
+ # first call MV_CC_CloseDevice to shut device, and then call MV_CC_OpenDevice to reopen the device.
+ def MV_CC_RegisterExceptionCallBack(self, ExceptionCallBackFun, pUser):
+ MvCamCtrldll.MV_CC_RegisterExceptionCallBack.argtype = (c_void_p, c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_RegisterExceptionCallBack.restype = c_uint
+ return MvCamCtrldll.MV_CC_RegisterExceptionCallBack(self.handle, ExceptionCallBackFun, pUser)
+
+ ##
+ # @~chinese
+ # @brief 娉ㄥ唽鍏ㄩ儴浜嬩欢鍥炶皟锛屽湪鎵撳紑璁惧涔嬪悗璋冪敤
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param cbEvent [IN] 浜嬩欢鍥炶皟鍑芥暟鎸囬拡
+ # @param pUser [IN] 鐢ㄦ埛鑷畾涔夊彉閲�
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+ # @remarks 閫氳繃璇ユ帴鍙h缃簨浠跺洖璋冿紝鍙互鍦ㄥ洖璋冨嚱鏁伴噷闈㈣幏鍙栭噰闆嗐�佹洕鍏夌瓑浜嬩欢淇℃伅
+ # 璇ユ帴鍙d笉鏀寔CameraLink璁惧銆�
+
+ # @~english
+ # @brief Register event callback, which is called after the device is opened
+ # @param handle [IN] Device handle
+ # @param cbEvent [IN] Event CallBack Function Pointer
+ # @param pUser [IN] User defined variable
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks Call this API to set the event callback function to get the event information, e.g., acquisition, exposure, and so on
+ # This API is not supported by CameraLink device.
+ def MV_CC_RegisterAllEventCallBack(self, EventCallBackFun, pUser):
+ MvCamCtrldll.MV_CC_RegisterAllEventCallBack.argtype = (c_void_p, c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_RegisterAllEventCallBack.restype = c_uint
+ return MvCamCtrldll.MV_CC_RegisterAllEventCallBack(self.handle, EventCallBackFun, pUser)
+
+ ##
+ # @~chinese
+ # @brief 娉ㄥ唽鍗曚釜浜嬩欢鍥炶皟锛屽湪鎵撳紑璁惧涔嬪悗璋冪敤
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param strEventName [IN] 浜嬩欢鍚嶇О
+ # @param cbEvent [IN] 浜嬩欢鍥炶皟鍑芥暟鎸囬拡
+ # @param pUser [IN] 鐢ㄦ埛鑷畾涔夊彉閲�
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+ # @remarks 閫氳繃璇ユ帴鍙h缃簨浠跺洖璋冿紝鍙互鍦ㄥ洖璋冨嚱鏁伴噷闈㈣幏鍙栭噰闆嗐�佹洕鍏夌瓑浜嬩欢淇℃伅銆�
+ # 璇ユ帴鍙d笉鏀寔CameraLink璁惧銆�
+
+ # @~english
+ # @brief Register single event callback, which is called after the device is opened
+ # @param handle [IN] Device handle
+ # @param strEventName [IN] Event name
+ # @param cbEvent [IN] Event CallBack Function Pointer
+ # @param pUser [IN] User defined variable
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks Call this API to set the event callback function to get the event information, e.g., acquisition, exposure, and so on.
+ # This API is not supported by CameraLink device .
+ def MV_CC_RegisterEventCallBackEx(self, pEventName, EventCallBackFun, pUser):
+ MvCamCtrldll.MV_CC_RegisterEventCallBackEx.argtype = (c_void_p, c_void_p, c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_RegisterEventCallBackEx.restype = c_uint
+ return MvCamCtrldll.MV_CC_RegisterEventCallBackEx(self.handle, pEventName.encode('ascii'), EventCallBackFun,
+ pUser)
+
+ ##
+ # @~chinese
+ # @brief 寮�鍚澶囨寚瀹氫簨浠�
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param strEventName [IN] 浜嬩欢鍚嶇О
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+
+ # @~english
+ # @brief Enable specified event of device
+ # @param handle [IN] Device handle
+ # @param strEventName [IN] Event name
+ # @return Success, return MV_OK. Failure, return error code
+ def MV_CC_EventNotificationOn(self, strEventName):
+ MvCamCtrldll.MV_CC_EventNotificationOn.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_EventNotificationOn.restype = c_uint
+ return MvCamCtrldll.MV_CC_EventNotificationOn(self.handle, strEventName.encode('ascii'))
+
+ ##
+ # @~chinese
+ # @brief 鍏抽棴璁惧鎸囧畾浜嬩欢
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param strEventName [IN] 浜嬩欢鍚嶇О
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+
+ # @~english
+ # @brief Disable specified event of device
+ # @param handle [IN] Device handle
+ # @param strEventName [IN] Event name
+ # @return Success, return MV_OK. Failure, return error code
+ def MV_CC_EventNotificationOff(self, strEventName):
+ MvCamCtrldll.MV_CC_EventNotificationOff.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_EventNotificationOff.restype = c_uint
+ return MvCamCtrldll.MV_CC_EventNotificationOff(self.handle, strEventName.encode('ascii'))
+ ## @}
+
+
+ ## @addtogroup ch: 浠匞igE璁惧鏀寔鐨勬帴鍙� | en: Only support GigE interface
+ ## @{
+
+ ##
+ # @~chinese
+ # @brief 璁剧疆鏋氫妇瓒呮椂鏃堕棿锛屼粎鏀寔GigE鍗忚锛岃寖鍥�:[1, UINT_MAX)
+ # @param nMilTimeout [IN] 瓒呮椂鏃堕棿锛屽簲涓烘棤绗﹀彿鏁存暟,榛樿100ms
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 鍦ㄨ皟鐢∕V_CC_EnumDevices绛夋灇涓炬帴鍙e墠浣跨敤璇ユ帴鍙o紝鍙缃灇涓綠IGE璁惧鐨勭綉鍗℃渶澶ц秴鏃舵椂闂达紙榛樿100ms锛�,鍙互鍑忓皯鏈�澶ц秴鏃舵椂闂达紝鏉ュ姞蹇灇涓綠IGE璁惧鐨勯�熷害
+ # @remarks 浠呮敮鎸丟igEVision璁惧銆�
+
+ # @~english
+ # @brief Set enumerate device timeout,only support GigE,range:[1, UINT_MAX)
+ # @param nMilTimeout [IN] time out,input of unsigned int,default 100ms
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks Before calling enum device interfaces,call MV_GIGE_SetEnumDevTimeout to set max timeout,can reduce the maximum timeout to speed up the enumeration of GigE devices.
+ # @remarks This API only support GigE Vision Device.
+ def MV_GIGE_SetEnumDevTimeout(nMilTimeout):
+ MvCamCtrldll.MV_GIGE_SetEnumDevTimeout.argtype = (c_uint)
+ MvCamCtrldll.MV_GIGE_SetEnumDevTimeout.restype = c_uint
+ return MvCamCtrldll.MV_GIGE_SetEnumDevTimeout(c_uint(nMilTimeout))
+
+ ##
+ # @~chinese
+ # @brief 寮哄埗IP
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param nIP [IN] 璁剧疆鐨処P
+ # @param nSubNetMask [IN] 瀛愮綉鎺╃爜
+ # @param nDefaultGateWay [IN] 榛樿缃戝叧
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+ # @remarks 寮哄埗璁剧疆璁惧缃戠粶鍙傛暟锛堝寘鎷琁P銆佸瓙缃戞帺鐮併�侀粯璁ょ綉鍏筹級锛屽己鍒惰缃箣鍚庡皢闇�瑕侀噸鏂板垱寤鸿澶囧彞鏌勶紝鏀寔GigEVision(MV_GIGE_DEVICE)璁惧鍜孏enTL(MV_GENTL_GIGE_DEVICE)璁惧
+ # 濡傛灉璁惧涓篋HCP鐨勭姸鎬侊紝璋冪敤璇ユ帴鍙e己鍒惰缃澶囩綉缁滃弬鏁颁箣鍚庤澶囧皢浼氶噸鍚��
+
+ # @~english
+ # @brief Force IP
+ # @param handle [IN] Device handle
+ # @param nIP [IN] IP to set
+ # @param nSubNetMask [IN] Subnet mask
+ # @param nDefaultGateWay [IN] Default gateway
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks Force setting camera network parameter (including IP address, subnet mask, default gateway). After forced setting, device handle should be created again.
+ # This API support GigEVision(MV_GIGE_DEVICE) and GenTL(MV_GENTL_GIGE_DEVICE) device.
+ # If device is in DHCP status, after calling this API to force setting camera network parameter, the device will restart.
+ def MV_GIGE_ForceIpEx(self, nIP, nSubNetMask, nDefaultGateWay):
+ MvCamCtrldll.MV_GIGE_ForceIpEx.argtype = (c_void_p, c_uint, c_uint, c_uint)
+ MvCamCtrldll.MV_GIGE_ForceIpEx.restype = c_uint
+ return MvCamCtrldll.MV_GIGE_ForceIpEx(self.handle, c_uint(nIP), c_uint(nSubNetMask), c_uint(nDefaultGateWay))
+
+ ##
+ # @~chinese
+ # @brief 閰嶇疆IP鏂瑰紡
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param nType [IN] IP绫诲瀷锛岃MV_IP_CFG_x
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+ # @remarks 鍙戦�佸懡浠よ缃澶囩殑IP鏂瑰紡锛屽DHCP銆丩LA绛夛紝浠呮敮鎸丟igEVision(MV_GIGE_DEVICE)鍜孏enTl(MV_GENTL_GIGE_DEVICE)鐨勮澶囥��
+
+ # @~english
+ # @brief IP configuration method
+ # @param handle [IN] Device handle
+ # @param nType [IN] IP type, refer to MV_IP_CFG_x
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks Send command to set camera IP mode, such as DHCP and LLA, only supported by GigEVision(MV_GIGE_DEVICE) and GenTL(MV_GENTL_GIGE_DEVICE) Device.
+ def MV_GIGE_SetIpConfig(self, nType):
+ MvCamCtrldll.MV_GIGE_SetIpConfig.argtype = (c_void_p, c_uint)
+ MvCamCtrldll.MV_GIGE_SetIpConfig.restype = c_uint
+ return MvCamCtrldll.MV_GIGE_SetIpConfig(self.handle, c_uint(nType))
+
+ ##
+ # @~chinese
+ # @brief 璁剧疆浠呬娇鐢ㄦ煇绉嶆ā寮�,type: MV_NET_TRANS_x锛屼笉璁剧疆鏃讹紝榛樿浼樺厛浣跨敤driver
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param nType [IN] 缃戠粶浼犺緭妯″紡锛岃MV_NET_TRANS_x
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+ # @remarks 閫氳繃璇ユ帴鍙e彲浠ヨ缃甋DK鍐呴儴浼樺厛浣跨敤鐨勭綉缁滄ā寮忥紝榛樿浼樺厛浣跨敤椹卞姩妯″紡锛屼粎GigEVision璁惧鏀寔銆�
+
+ # @~english
+ # @brief Set to use only one mode,type: MV_NET_TRANS_x. When do not set, priority is to use driver by default
+ # @param handle [IN] Device handle
+ # @param nType [IN] Net transmission mode, refer to MV_NET_TRANS_x
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarksSet SDK internal priority network mode through this interface, drive mode by default, only supported by GigEVision camera.
+ def MV_GIGE_SetNetTransMode(self, nType):
+ MvCamCtrldll.MV_GIGE_SetNetTransMode.argtype = (c_void_p, c_uint)
+ MvCamCtrldll.MV_GIGE_SetNetTransMode.restype = c_uint
+ return MvCamCtrldll.MV_GIGE_SetNetTransMode(self.handle, c_uint(nType))
+
+ ##
+ # @~chinese
+ # @brief 鑾峰彇缃戠粶浼犺緭淇℃伅
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param pstInfo [IN][OUT] 淇℃伅缁撴瀯浣�
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+ # @remarks 閫氳繃璇ユ帴鍙e彲浠ヨ幏鍙栫綉缁滀紶杈撶浉鍏充俊鎭紝鍖呮嫭宸叉帴鏀舵暟鎹ぇ灏忋�佷涪甯ф暟閲忕瓑锛屽湪MV_CC_StartGrabbing寮�鍚噰闆嗕箣鍚庤皟鐢ㄣ�備粎GigEVision璁惧鏀寔銆�
+
+ # @~english
+ # @brief Get net transmission information
+ # @param handle [IN] Device handle
+ # @param pstInfo [IN][OUT] Information Structure
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks Get network transmission information through this API, including received data size, number of lost frames.
+ # Call this API after starting image acquiring through MV_CC_StartGrabbing. This API is supported only by GigEVision Camera.
+ def MV_GIGE_GetNetTransInfo(self, pstInfo):
+ MvCamCtrldll.MV_GIGE_GetNetTransInfo.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_GIGE_GetNetTransInfo.restype = c_uint
+ return MvCamCtrldll.MV_GIGE_GetNetTransInfo(self.handle, byref(pstInfo))
+
+ ##
+ # @~chinese
+ # @brief 璁剧疆鏋氫妇鍛戒护鐨勫洖澶嶅寘绫诲瀷
+ # @param nMode [IN] 鍥炲鍖呯被鍨嬶紙榛樿骞挎挱锛夛紝0-鍗曟挱锛�1-骞挎挱
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璇ユ帴鍙e彧瀵笹igE鐩告満鏈夋晥銆�
+
+ # @~english
+ # @brief Setting the ACK mode of devices Discovery.
+ # @param nMode [IN] ACK mode锛圖efault-Broadcast锛�,0-Unicast,1-Broadcast.
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This interface is ONLY effective on GigE cameras.
+ def MV_GIGE_SetDiscoveryMode(nMode):
+ MvCamCtrldll.MV_GIGE_SetDiscoveryMode.argtype = (c_uint)
+ MvCamCtrldll.MV_GIGE_SetDiscoveryMode.restype = c_uint
+ return MvCamCtrldll.MV_GIGE_SetDiscoveryMode(c_uint(nMode))
+
+ ##
+ # @~chinese
+ # @brief 璁剧疆GVSP鍙栨祦瓒呮椂鏃堕棿
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param nMillisec [IN] 瓒呮椂鏃堕棿锛岄粯璁�300ms锛岃寖鍥达細>10ms
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 杩炴帴璁惧涔嬪悗锛屽彇娴佸姩浣滃彂鐢熷墠锛岃皟鐢ㄨ鎺ュ彛鍙互璁剧疆GVSP鍙栨祦瓒呮椂鏃堕棿銆侴VSP鍙栨祦瓒呮椂璁剧疆杩囩煭鍙兘閫犳垚鍥惧儚寮傚父锛岃缃繃闀垮彲鑳介�犳垚鍙栨祦鏃堕棿鍙橀暱銆�
+
+ # @~english
+ # @brief Set GVSP streaming timeout
+ # @param handle [IN] Device handle
+ # @param nMillisec [IN] It refers to timeout duration (unit:millisecond), range:>10ms. The default value is 300 ms.
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks After the device is connected, and just before start streaming,
+ # call this interface to set GVSP streaming timeout value.
+ def MV_GIGE_SetGvspTimeout(self, nMillisec):
+ MvCamCtrldll.MV_GIGE_SetGvspTimeout.argtype = (c_void_p, c_uint)
+ MvCamCtrldll.MV_GIGE_SetGvspTimeout.restype = c_uint
+ return MvCamCtrldll.MV_GIGE_SetGvspTimeout(self.handle, c_uint(nMillisec))
+
+ ##
+ # @~chinese
+ # @brief 鑾峰彇GVSP鍙栨祦瓒呮椂鏃堕棿
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param pnMillisec [IN][OUT] 瓒呮椂鏃堕棿鎸囬拡锛屼互姣涓哄崟浣�
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璇ユ帴鍙g敤浜庤幏鍙栧綋鍓嶇殑GVSP鍙栨祦瓒呮椂鏃堕棿
+
+ # @~english
+ # @brief Get GVSP streaming timeout
+ # @param handle [IN] Device handle
+ # @param pnMillisec [IN][OUT] Timeout, ms as unit
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This interface is used to get the current GVSP streaming timeout.
+ def MV_GIGE_GetGvspTimeout(self, pnMillisec):
+ MvCamCtrldll.MV_GIGE_GetGvspTimeout.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_GIGE_GetGvspTimeout.restype = c_uint
+ return MvCamCtrldll.MV_GIGE_GetGvspTimeout(self.handle, byref(pnMillisec))
+
+ ##
+ # @~chinese
+ # @brief 璁剧疆GVCP鍛戒护瓒呮椂鏃堕棿
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param nMillisec [IN] 瓒呮椂鏃堕棿(ms)锛岄粯璁�500ms锛岃寖鍥达細[0,10000]
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 杩炴帴璁惧涔嬪悗璋冪敤璇ユ帴鍙e彲浠ヨ缃瓽VCP鍛戒护瓒呮椂鏃堕棿銆�
+
+ # @~english
+ # @brief Set GVCP cammand timeout
+ # @param handle [IN] Device handle
+ # @param nMillisec [IN] Timeout(ms), default 500ms, range: [0,10000]
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks The API can set GVCP command timeout(ms) after device is connected .
+ def MV_GIGE_SetGvcpTimeout(self, nMillisec):
+ MvCamCtrldll.MV_GIGE_SetGvcpTimeout.argtype = (c_void_p, c_uint)
+ MvCamCtrldll.MV_GIGE_SetGvcpTimeout.restype = c_uint
+ return MvCamCtrldll.MV_GIGE_SetGvcpTimeout(self.handle, c_uint(nMillisec))
+
+ ##
+ # @~chinese
+ # @brief 鑾峰彇GVCP鍛戒护瓒呮椂鏃堕棿
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param pnMillisec [IN][OUT] 瓒呮椂鏃堕棿鎸囬拡锛屼互姣涓哄崟浣�
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璇ユ帴鍙g敤浜庤幏鍙栧綋鍓嶇殑GVCP瓒呮椂鏃堕棿銆�
+
+ # @~english
+ # @brief Get GVCP cammand timeout
+ # @param handle [IN] Device handle
+ # @param pnMillisec [IN][OUT] Timeout, ms as unit
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This interface is used to get the current GVCP timeout.
+ def MV_GIGE_GetGvcpTimeout(self, pnMillisec):
+ MvCamCtrldll.MV_GIGE_GetGvcpTimeout.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_GIGE_GetGvcpTimeout.restype = c_uint
+ return MvCamCtrldll.MV_GIGE_GetGvcpTimeout(self.handle, byref(pnMillisec))
+
+ ##
+ # @~chinese
+ # @brief 璁剧疆閲嶄紶GVCP鍛戒护娆℃暟
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param nRetryGvcpTimes [IN] 閲嶄紶娆℃暟锛岃寖鍥达細0-100
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璇ユ帴鍙g敤浜庡湪GVCP鍖呬紶杈撳紓甯告椂锛屽鍔犻噸浼犵殑娆℃暟锛屽湪涓�瀹氱▼搴︿笂鍙互閬垮厤璁惧鎺夌嚎锛岃寖鍥翠负0-100銆�
+
+ # @~english
+ # @brief Set the number of retry GVCP cammand
+ # @param handle [IN] Device handle
+ # @param nRetryGvcpTimes [IN] The number of retries锛宺ang锛�0-100
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This interface is used to increase The Times of retransmission when GVCP packet transmission is abnormal,and to some extent,
+ # it can avoid dropping the camera, with a range of 0-100.
+ def MV_GIGE_SetRetryGvcpTimes(self, nRetryGvcpTimes):
+ MvCamCtrldll.MV_GIGE_SetRetryGvcpTimes.argtype = (c_void_p, c_uint)
+ MvCamCtrldll.MV_GIGE_SetRetryGvcpTimes.restype = c_uint
+ return MvCamCtrldll.MV_GIGE_SetRetryGvcpTimes(self.handle, c_uint(nRetryGvcpTimes))
+
+ ##
+ # @~chinese
+ # @brief 鑾峰彇閲嶄紶GVCP鍛戒护娆℃暟
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param pnRetryGvcpTimes [IN][OUT] 閲嶄紶娆℃暟鎸囬拡
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璇ユ帴鍙g敤浜庤幏鍙栧綋鍓嶇殑GVCP閲嶄紶娆℃暟锛岄粯璁�3娆°��
+
+ # @~english
+ # @brief Get the number of retry GVCP cammand
+ # @param handle [IN] Device handle
+ # @param pnRetryGvcpTimes [IN][OUT] The number of retries
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This interface is used to get the current number of GVCP retransmissions, which defaults to 3.
+ def MV_GIGE_GetRetryGvcpTimes(self, pnRetryGvcpTimes):
+ MvCamCtrldll.MV_GIGE_GetRetryGvcpTimes.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_GIGE_GetRetryGvcpTimes.restype = c_uint
+ return MvCamCtrldll.MV_GIGE_GetRetryGvcpTimes(self.handle, byref(pnRetryGvcpTimes))
+
+ ##
+ # @~chinese
+ # @brief 鑾峰彇鏈�浣崇殑packet size锛岃鎺ュ彛鐩墠鍙敮鎸丟igE璁惧
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @return 鏈�浣硃acketsize
+ # @remarks 鑾峰彇鏈�浣崇殑packet size锛屽搴擥igEVision璁惧鏄疭CPS銆�
+ # 璇ユ帴鍙i渶瑕佸湪MV_CC_OpenDevice涔嬪悗銆丮V_CC_StartGrabbing涔嬪墠璋冪敤銆�
+ # 璇ユ帴鍙d笉鏀寔CameraLink璁惧銆乁3V璁惧銆�
+ # 璇ユ帴鍙d笉鏀寔GenTL璁惧锛堝崗璁笉鏀寔锛�,濡傛灉鏄疓enTL鏂瑰紡娣诲姞鐨勭綉鍙g浉鏈猴紝寤鸿鏍规嵁缃戠粶瀹為檯鎯呭喌閰嶇疆GevSCPSPacketSize锛屾垨鑰呴厤缃�1500銆�
+
+ # @~english
+ # @brief Get the optimal Packet Size, Only support GigE Camera
+ # @param handle [IN] Device handle
+ # @return Optimal packetsize
+ # @remarks To get optimized packet size, for GigEVision device is SCPS
+ # and it is the size of a packet transported on the network. The interface should be called after MV_CC_OpenDevice and before MV_CC_StartGrabbing.
+ # This API is not supported by CameraLink device and U3V device.
+ # This interface does not support GenTL devices (protocol not supported). If a network camera is added in GenTL mode, it is recommended to configure GevSCPSPacketSize according to the actual network situation,or 1500.
+ def MV_CC_GetOptimalPacketSize(self):
+ MvCamCtrldll.MV_CC_GetOptimalPacketSize.argtype = (c_void_p)
+ MvCamCtrldll.MV_CC_GetOptimalPacketSize.restype = c_uint
+ return MvCamCtrldll.MV_CC_GetOptimalPacketSize(self.handle)
+
+ ##
+ # @~chinese
+ # @brief 璁剧疆鏄惁鎵撳紑閲嶅彂鍖呮敮鎸侊紝鍙婇噸鍙戝寘璁剧疆
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param bEnable [IN] 鏄惁鏀寔閲嶅彂鍖�
+ # @param nMaxResendPercent [IN] 鏈�澶ч噸鍙戞瘮
+ # @param nResendTimeout [IN] 閲嶅彂瓒呮椂鏃堕棿锛岃寖鍥达細0-10000ms
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 杩炴帴璁惧涔嬪悗璋冪敤璇ユ帴鍙e彲浠ヨ缃噸鍙戝寘灞炴�э紝浠匞igEVision璁惧鏀寔銆�
+
+ # @~english
+ # @brief Set whethe to enable resend, and set resend
+ # @param handle [IN] Device handle
+ # @param bEnable [IN] enable resend
+ # @param nMaxResendPercent [IN] Max resend persent
+ # @param nResendTimeout [IN] Resend timeout, rang锛�0-10000ms
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks After the device is connected, call this interface to set resend packet properties, only supported by GigEVision camera.
+ def MV_GIGE_SetResend(self, bEnable, nMaxResendPercent=100, nResendTimeout=50):
+ MvCamCtrldll.MV_GIGE_SetResend.argtype = (c_void_p, c_uint, c_uint, c_uint)
+ MvCamCtrldll.MV_GIGE_SetResend.restype = c_uint
+ return MvCamCtrldll.MV_GIGE_SetResend(self.handle, c_uint(bEnable), c_uint(nMaxResendPercent),
+ c_uint(nResendTimeout))
+
+ ##
+ # @~chinese
+ # @brief 璁剧疆閲嶄紶鍛戒护鏈�澶у皾璇曟鏁�
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param nRetryTimes [IN] 閲嶄紶鍛戒护鏈�澶у皾璇曟鏁帮紝榛樿20
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璇ユ帴鍙e繀椤诲湪璋冪敤MV_GIGE_SetResend寮�鍚噸浼犲寘鍔熻兘涔嬪悗璋冪敤锛屽惁鍒欏け璐ヤ笖杩斿洖MV_E_CALLORDER
+
+ # @~english
+ # @brief set the max resend retry times
+ # @param handle [IN] Device handle
+ # @param nRetryTimes [IN] The max times to retry resending lost packets锛宒efault 20
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This interface MUST be called after enabling resending lost packets by calling MV_GIGE_SetResend,
+ # otherwise would fail and return MV_E_CALLORDER.
+ def MV_GIGE_SetResendMaxRetryTimes(self, nRetryTimes):
+ MvCamCtrldll.MV_GIGE_SetResendMaxRetryTimes.argtype = (c_void_p, c_uint)
+ MvCamCtrldll.MV_GIGE_SetResendMaxRetryTimes.restype = c_uint
+ return MvCamCtrldll.MV_GIGE_SetResendMaxRetryTimes(self.handle, c_uint(nRetryTimes))
+
+ ##
+ # @~chinese
+ # @brief 鑾峰彇閲嶄紶鍛戒护鏈�澶у皾璇曟鏁�
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param pnRetryTimes [IN][OUT] 閲嶄紶鍛戒护鏈�澶у皾璇曟鏁�
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璇ユ帴鍙e繀椤诲湪璋冪敤MV_GIGE_SetResend寮�鍚噸浼犲寘鍔熻兘涔嬪悗璋冪敤锛屽惁鍒欏け璐ヤ笖杩斿洖MV_E_CALLORDER
+
+ # @~english
+ # @brief get the max resend retry times
+ # @param handle [IN] Device handle
+ # @param pnRetryTimes [IN][OUT] The max times to retry resending lost packets
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This interface MUST be called after enabling resending lost packets by calling MV_GIGE_SetResend,
+ # otherwise would fail and return MV_E_CALLORDER.
+ def MV_GIGE_GetResendMaxRetryTimes(self, nRetryTimes):
+ MvCamCtrldll.MV_GIGE_GetResendMaxRetryTimes.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_GIGE_GetResendMaxRetryTimes.restype = c_uint
+ return MvCamCtrldll.MV_GIGE_GetResendMaxRetryTimes(self.handle, byref(nRetryTimes))
+
+
+ ##
+ # @~chinese
+ # @brief 璁剧疆鍚屼竴閲嶄紶鍖呭娆¤姹備箣闂寸殑鏃堕棿闂撮殧
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param nMillisec [IN] 鍚屼竴閲嶄紶鍖呭娆¤姹備箣闂寸殑鏃堕棿闂撮殧锛岄粯璁�10ms
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璇ユ帴鍙e繀椤诲湪璋冪敤MV_GIGE_SetResend寮�鍚噸浼犲寘鍔熻兘涔嬪悗璋冪敤锛屽惁鍒欏け璐ヤ笖杩斿洖MV_E_CALLORDER
+
+ # @~english
+ # @brief set time interval between same resend requests
+ # @param handle [IN] Device handle
+ # @param nMillisec [IN] The time interval between same resend requests,default 10ms
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This interface MUST be called after enabling resending lost packets by calling MV_GIGE_SetResend,
+ # otherwise would fail and return MV_E_CALLORDER.
+ def MV_GIGE_SetResendTimeInterval(self, nMillisec):
+ MvCamCtrldll.MV_GIGE_SetResendTimeInterval.argtype = (c_void_p, c_uint)
+ MvCamCtrldll.MV_GIGE_SetResendTimeInterval.restype = c_uint
+ return MvCamCtrldll.MV_GIGE_SetResendTimeInterval(self.handle, c_uint(nMillisec))
+
+
+ ##
+ # @~chinese
+ # @brief 鑾峰彇鍚屼竴閲嶄紶鍖呭娆¤姹備箣闂寸殑鏃堕棿闂撮殧
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param pnMillisec [IN][OUT] 鍚屼竴閲嶄紶鍖呭娆¤姹備箣闂寸殑鏃堕棿闂撮殧
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璇ユ帴鍙e繀椤诲湪璋冪敤MV_GIGE_SetResend寮�鍚噸浼犲寘鍔熻兘涔嬪悗璋冪敤锛屽惁鍒欏け璐ヤ笖杩斿洖MV_E_CALLORDER
+
+ # @~english
+ # @brief get time interval between same resend requests
+ # @param handle [IN] Device handle
+ # @param pnMillisec [IN][OUT] The time interval between same resend requests
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This interface MUST be called after enabling resending lost packets by calling MV_GIGE_SetResend,
+ # otherwise would fail and return MV_E_CALLORDER.
+ def MV_GIGE_GetResendTimeInterval(self, nMillisec):
+ MvCamCtrldll.MV_GIGE_GetResendTimeInterval.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_GIGE_GetResendTimeInterval.restype = c_uint
+ return MvCamCtrldll.MV_GIGE_GetResendTimeInterval(self.handle, byref(nMillisec))
+
+ ##
+ # @~chinese
+ # @brief 璁剧疆浼犺緭妯″紡锛屽彲浠ヤ负鍗曟挱妯″紡銆佺粍鎾ā寮忕瓑
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param stTransmissionType [IN] 浼犺緭妯″紡缁撴瀯浣�
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 閫氳繃璇ユ帴鍙e彲浠ヨ缃紶杈撴ā寮忎负鍗曟挱銆佺粍鎾瓑妯″紡锛屼粎GigEVision璁惧鏀寔銆�
+
+ # @~english
+ # @brief Set transmission type,Unicast or Multicast
+ # @param handle [IN] Device handle
+ # @param stTransmissionType [IN] Struct of transmission type
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks Call this API to set the transmission mode as single cast mode and multicast mode. And this API is only valid for GigEVision camera.
+ def MV_GIGE_SetTransmissionType(self, stTransmissionType):
+ MvCamCtrldll.MV_GIGE_SetTransmissionType.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_GIGE_SetTransmissionType.restype = c_uint
+ return MvCamCtrldll.MV_GIGE_SetTransmissionType(self.handle, byref(stTransmissionType))
+
+
+ ##
+ # @~chinese
+ # @brief 鍙戝嚭鍔ㄤ綔鍛戒护
+ # @param pstActionCmdInfo [IN] 鍔ㄤ綔鍛戒护淇℃伅
+ # @param pstActionCmdResults [IN][OUT] 鍔ㄤ綔鍛戒护杩斿洖淇℃伅鍒楄〃
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 浠匞igEVision璁惧鏀寔銆�
+
+ # @~english
+ # @brief Issue Action Command
+ # @param pstActionCmdInfo [IN] Action Command
+ # @param pstActionCmdResults [IN][OUT] Action Command Result List
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This API is supported only by GigEVision camera.
+ def MV_GIGE_IssueActionCommand(pstActionCmdInfo, pstActionCmdResults):
+ MvCamCtrldll.MV_GIGE_IssueActionCommand.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_GIGE_IssueActionCommand.restype = c_uint
+ return MvCamCtrldll.MV_GIGE_IssueActionCommand(byref(pstActionCmdInfo), byref(pstActionCmdResults))
+
+ ##
+ # @~chinese
+ # @brief 鑾峰彇缁勬挱鐘舵��
+ # @param pstDevInfo [IN] 璁惧淇℃伅缁撴瀯浣�
+ # @param pbStatus [IN][OUT] 缁勬挱鐘舵��,true:缁勬挱鐘舵�侊紝false:闈炵粍鎾�
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璇ユ帴鍙g敤浜庡垽鏂澶囧綋鍓嶆槸鍚﹀浜庣粍鎾姸鎬侊紝瑙e喅瀹㈡埛绔灇涓炬椂闇�瑕佹墦寮�璁惧鍒ゆ柇缁勬挱鐨勯棶棰樸��
+ # 浠呮敮鎸佹爣鍑咷igE Vision璁惧銆�
+
+ # @~english
+ # @brief Get Multicast Status
+ # @param pstDevInfo [IN] Device Information Structure
+ # @param pbStatus [IN][OUT] Status of Multicast
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This interface is used to determine whether the camera is currently in multicast state,
+ # and to solve the problem that the client needs to turn on the camera to determine multicast when enumerating.
+ # This API only support GigE Vision Device.
+ def MV_GIGE_GetMulticastStatus(pstDevInfo, pbStatus):
+ MvCamCtrldll.MV_GIGE_GetMulticastStatus.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_GIGE_GetMulticastStatus.restype = c_uint
+ return MvCamCtrldll.MV_GIGE_GetMulticastStatus(byref(pstDevInfo), byref(pbStatus))
+ ## @}
+
+ ## @addtogroup ch: 浠匔ameraLink 璁惧鏀寔鐨勬帴鍙� | en: Only support camlink device interface
+ ## @{
+
+ ##
+ # @~chinese
+ # @brief 鑾峰彇涓插彛淇℃伅鍒楄〃
+ # @param pstSerialPortList [IN][OUT] 涓插彛淇℃伅鍒楄〃
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璇ユ帴鍙g敤浜庤幏鍙栨湰鍦扮殑涓插彛淇℃伅銆�
+
+ # @~english
+ # @brief Get serial port information list
+ # @param pstSerialPortList [IN][OUT] serial port information list
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This interface is used to get local serial port information.
+ def MV_CAML_GetSerialPortList(stSerialPortList):
+ MvCamCtrldll.MV_CAML_GetSerialPortList.argtype = c_void_p
+ MvCamCtrldll.MV_CAML_GetSerialPortList.restype = c_uint
+ return MvCamCtrldll.MV_CAML_GetSerialPortList(byref(stSerialPortList))
+
+ ##
+ # @~chinese
+ # @brief 璁剧疆鍙栨寚瀹氭灇涓句覆鍙�
+ # @param pstSerialPortList [IN][OUT] 涓插彛淇℃伅鍒楄〃
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璇ユ帴鍙g敤浜庤缃灇涓綜ameraLink 璁惧鐨勬寚瀹氫覆鍙c��
+
+ # @~english
+ # @brief Set the specified enumeration serial port
+ # @param pstSerialPortList [IN] serial port information list
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This interface is used to set the specified enumeration serial port.
+ def MV_CAML_SetEnumSerialPorts(stSerialPortList):
+ MvCamCtrldll.MV_CAML_SetEnumSerialPorts.argtype = c_void_p
+ MvCamCtrldll.MV_CAML_SetEnumSerialPorts.restype = c_uint
+ return MvCamCtrldll.MV_CAML_SetEnumSerialPorts(byref(stSerialPortList))
+
+ ##
+ # @~chinese
+ # @brief 璁剧疆璁惧娉㈢壒鐜�
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param nBaudrate [IN] 璁剧疆鐨勬尝鐗圭巼鍊硷紝鏁板�煎弬鑰僀ameraParams.h涓畯瀹氫箟锛屽#define MV_CAML_BAUDRATE_9600 0x00000001
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+ # @remarks 璇ユ帴鍙f敮鎸佸湪璁惧鏈繛鎺ユ椂璋冪敤. 閫氳繃GenTL鍗忚璁块棶璁惧鏃讹紝闇�瑕佸厛杩炴帴璁惧锛屾墠鑳借皟鐢ㄨ鎺ュ彛
+ # 鍥犵‖浠�/绯荤粺/澶栭儴骞叉壈绛夊洜绱�,閰嶇疆楂樻尝鐗圭巼鍙兘瀵艰嚧閫氫俊寮傚父锛屽缓璁厤缃尝鐗圭巼鏈�澶у皬浜�115200
+
+ # @~english
+ # @brief Set device baudrate using one of the CL_BAUDRATE_XXXX value
+ # @param handle [IN] Device handle
+ # @param nBaudrate [IN] baud rate to set. Refer to the 'CameraParams.h' for parameter definitions, for example, #define MV_CAML_BAUDRATE_9600 0x00000001
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This API is supported only by CameraLink device.
+ # This API support calls when devices are not connected. But it is necessary to connect to the device first when accessing a CameraLink Device through the GenTL protocol.
+ # Due to hardware/system/external interference and other factors, configuring a high baud rate may cause abnormal communication.
+ # It is recommended to configure a baud rate of less than 115200
+
+ def MV_CAML_SetDeviceBaudrate(self, nBaudrate):
+ MvCamCtrldll.MV_CAML_SetDeviceBaudrate.argtype = (c_void_p, c_uint)
+ MvCamCtrldll.MV_CAML_SetDeviceBaudrate.restype = c_uint
+ return MvCamCtrldll.MV_CAML_SetDeviceBaudrate(self.handle, c_uint(nBaudrate))
+
+ ##
+ # @~chinese
+ # @brief 鑾峰彇璁惧娉㈢壒鐜�
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param pnCurrentBaudrate [IN][OUT] 娉㈢壒鐜囦俊鎭寚閽堬紝鏁板�煎弬鑰僀ameraParams.h涓畯瀹氫箟锛屽#define MV_CAML_BAUDRATE_9600 0x00000001
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+ # @remarks 璇ユ帴鍙f敮鎸佸湪璁惧鏈繛鎺ユ椂璋冪敤銆�
+
+ # @~english
+ # @brief Returns the current device baudrate, using one of the CL_BAUDRATE_XXXX value
+ # @param handle [IN] Device handle
+ # @param pnCurrentBaudrate [IN][OUT] Return pointer of baud rate to user. Refer to the 'CameraParams.h' for parameter definitions, for example, #define MV_CAML_BAUDRATE_9600 0x00000001
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This API is supported only by CameraLink device.
+ # This API support calls when devices are not connected.
+ def MV_CAML_GetDeviceBaudrate(self, pnCurrentBaudrate):
+ MvCamCtrldll.MV_CAML_GetDeviceBaudrate.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CAML_GetDeviceBaudrate.restype = c_uint
+ return MvCamCtrldll.MV_CAML_GetDeviceBaudrate(self.handle, byref(pnCurrentBaudrate))
+
+ ##
+ # @~chinese
+ # @brief 鑾峰彇璁惧涓庝富鏈洪棿杩炴帴鏀寔鐨勬尝鐗圭巼
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param pnBaudrateAblity [IN][OUT] 鏀寔鐨勬尝鐗圭巼淇℃伅鐨勬寚閽堛�傛墍鏈夋敮鎸佺殑娉㈢壒鐜囩殑"鎴栬繍绠�"缁撴灉锛屽崟涓暟鍊煎弬鑰僀ameraParams.h涓畯瀹氫箟锛屽MV_CAML_BAUDRATE_9600 0x00000001
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+ # @remarks 璇ユ帴鍙f敮鎸佸湪璁惧鏈繛鎺ユ椂璋冪敤銆�
+
+ # @~english
+ # @brief Returns supported baudrates of the combined device and host interface
+ # @param handle [IN] Device handle
+ # @param pnBaudrateAblity [IN][OUT] Return pointer of the supported baudrates to user. 'OR' operation results of the supported baudrates. Refer to the 'CameraParams.h' for single value definitions, for example, MV_CAML_BAUDRATE_9600 0x00000001
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This API is supported only by CameraLink device.
+ # This API support calls when devices are not connected.
+ def MV_CAML_GetSupportBaudrates(self, pnBaudrateAblity):
+ MvCamCtrldll.MV_CAML_GetSupportBaudrates.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CAML_GetSupportBaudrates.restype = c_uint
+ return MvCamCtrldll.MV_CAML_GetSupportBaudrates(self.handle, byref(pnBaudrateAblity))
+
+ ##
+ # @~chinese
+ # @brief 璁剧疆涓插彛鎿嶄綔绛夊緟鏃堕暱
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param nMillisec [IN] 涓插彛鎿嶄綔鐨勭瓑寰呮椂闀�, 鍗曚綅涓簃s
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+
+ # @~english
+ # @brief Sets the timeout for operations on the serial port
+ # @param handle [IN] Device handle
+ # @param nMillisec [IN] Timeout in [ms] for operations on the serial port.
+ # @return Success, return MV_OK. Failure, return error code
+ def MV_CAML_SetGenCPTimeOut(self, nMillisec):
+ MvCamCtrldll.MV_CAML_SetGenCPTimeOut.argtype = (c_void_p, c_uint)
+ MvCamCtrldll.MV_CAML_SetGenCPTimeOut.restype = c_uint
+ return MvCamCtrldll.MV_CAML_SetGenCPTimeOut(self.handle, c_uint(nMillisec))
+ ## @}
+
+
+ ## @addtogroup ch: 浠匲3V璁惧鏀寔鐨勬帴鍙� | en: Only support U3V device interface
+ ## @{
+
+ ##
+ # @~chinese
+ # @brief 璁剧疆U3V鐨勪紶杈撳寘澶у皬
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param nTransferSize [IN] 浼犺緭鐨勫寘澶у皬, Byte锛岄粯璁や负1M锛宺ang锛�>=0x400锛屽缓璁渶澶у�硷細[windows] rang <= 0x400000锛沎Linux] rang <= 0x200000
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+ # @remarks 澧炲姞浼犺緭鍖呭ぇ灏忓彲浠ラ�傚綋闄嶄綆鍙栨祦鏃剁殑CPU鍗犵敤鐜囥�備絾涓嶅悓鐨凱C鍜屼笉鍚孶SB鎵╁睍鍗″瓨鍦ㄤ笉鍚岀殑鍏煎鎬э紝濡傛灉璇ュ弬鏁拌缃繃澶у彲鑳戒細鍑虹幇鍙栦笉鍒板浘鍍忕殑椋庨櫓銆�
+
+ # @~english
+ # @brief Set transfer size of U3V device
+ # @param handle [IN] Device handle
+ # @param nTransferSize [IN] Transfer size锛孊yte锛宒efault锛�1M锛宺ang锛�>=0x400锛孯ecommended maximum: [windows] rang <= 0x400000; [Linux] rang <= 0x200000
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks Increasing the transmission packet size can reduce the CPU utilization at the time of fetching. However, different PCS and different USB extension CARDS have different compatibility, and if this parameter is set too large, there may be the risk of not getting the image.
+ def MV_USB_SetTransferSize(self, nTransferSize):
+ MvCamCtrldll.MV_USB_SetTransferSize.argtype = (c_void_p, c_uint)
+ MvCamCtrldll.MV_USB_SetTransferSize.restype = c_uint
+ return MvCamCtrldll.MV_USB_SetTransferSize(self.handle, c_uint(nTransferSize))
+
+ ##
+ # @~chinese
+ # @brief 鑾峰彇U3V鐨勪紶杈撳寘澶у皬
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param pnTransferSize [IN][OUT] 浼犺緭鐨勫寘澶у皬鎸囬拡, Byte
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+ # @remarks 璇ユ帴鍙g敤浜庤幏鍙栧綋鍓嶇殑U3V浼犺緭鍖呭ぇ灏忥紝榛樿1M銆�
+
+ # @~english
+ # @brief Get transfer size of U3V device
+ # @param handle [IN] Device handle
+ # @param pnTransferSize [IN][OUT] Transfer size锛孊yte
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This interface is used to get the current U3V transfer packet size, default 1M.
+ def MV_USB_GetTransferSize(self, pnTransferSize):
+ MvCamCtrldll.MV_USB_GetTransferSize.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_USB_GetTransferSize.restype = c_uint
+ return MvCamCtrldll.MV_USB_GetTransferSize(self.handle, byref(pnTransferSize))
+
+ ##
+ # @~chinese
+ # @brief 璁剧疆U3V鐨勪紶杈撻�氶亾涓暟
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param nTransferWays [IN] 浼犺緭閫氶亾涓暟锛岃寖鍥达細1-10
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+ # @remarks 鐢ㄦ埛鍙互鏍规嵁PC鐨勬�ц兘銆佽澶囧嚭鍥惧抚鐜囥�佸浘鍍忓ぇ灏忓拰鍐呭瓨浣跨敤鐜囩瓑鍥犵礌瀵硅鍙傛暟杩涜璋冭妭銆備絾涓嶅悓鐨凱C鍜屼笉鍚岀殑USB鎵╁睍鍗″瓨鍦ㄤ笉鍚岀殑鍏煎鎬с��
+
+ # @~english
+ # @brief Set transfer ways of U3V device
+ # @param handle [IN] Device handle
+ # @param nTransferWays [IN] Transfer ways锛宺ang锛�1-10
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks Users can adjust this parameter according to PC performance, camera image frame rate, image size, memory utilization and other factors. But different PCS and different USB expansion CARDS have different compatibility.
+ def MV_USB_SetTransferWays(self, nTransferWays):
+ MvCamCtrldll.MV_USB_SetTransferWays.argtype = (c_void_p, c_uint)
+ MvCamCtrldll.MV_USB_SetTransferWays.restype = c_uint
+ return MvCamCtrldll.MV_USB_SetTransferWays(self.handle, c_uint(nTransferWays))
+
+
+ ##
+ # @~chinese
+ # @brief 鑾峰彇U3V鐨勪紶杈撻�氶亾涓暟
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param pnTransferWays [IN][OUT] 浼犺緭閫氶亾涓暟鎸囬拡
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+ # @remarks 璇ユ帴鍙g敤浜庤幏鍙栧綋鍓嶇殑U3V寮傛鍙栨祦鑺傜偣涓暟锛孶鍙g浉鏈轰紶杈撻�氶亾涓暟鍜屽儚绱犳牸寮忓搴旂殑璐熻浇鍖呭ぇ灏忕浉鍏筹紝閫氳繃鏈�澶у紓姝ユ敞鍐岄暱搴� / 鍍忕礌鏍煎紡瀵瑰簲鐨勮礋杞藉寘澶у皬 璁$畻寰楀嚭銆�
+
+ # @~english
+ # @brief Get transfer ways of U3V device
+ # @param handle [IN] Device handle
+ # @param pnTransferWays [IN][OUT] Transfer ways
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This interface is used to get the current number of U3V asynchronous feed nodes.
+ # For U3V camera, The number of transmission channels is related to the size of the payload size corresponding to the pixel format, which is calculated by the maximum asynchronous registration length / the payload size corresponding to pixel format.
+ def MV_USB_GetTransferWays(self, pnTransferWays):
+ MvCamCtrldll.MV_USB_GetTransferWays.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_USB_GetTransferWays.restype = c_uint
+ return MvCamCtrldll.MV_USB_GetTransferWays(self.handle, byref(pnTransferWays))
+
+
+ ##
+ # @~chinese
+ # @brief 璁剧疆U3V鐨勪簨浠剁紦瀛樿妭鐐逛釜鏁�
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param nEventNodeNum [IN] 浜嬩欢缂撳瓨鑺傜偣涓暟锛岃寖鍥达細1-64
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+ # @remarks 璇ユ帴鍙g敤浜庤缃綋鍓嶇殑U3V浜嬩欢缂撳瓨鑺傜偣涓暟锛岄粯璁ゆ儏鍐典笅涓�5涓��
+
+ # @~english
+ # @brief Set the number of U3V device event cache nodes
+ # @param handle [IN] Device handle
+ # @param nEventNodeNum [IN] Event Node Number
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This interface is used to set the current number of U3V event nodes. default to 5 nodes.
+ def MV_USB_SetEventNodeNum(self, nEventNodeNum):
+ MvCamCtrldll.MV_USB_SetEventNodeNum.argtype = (c_void_p, c_uint)
+ MvCamCtrldll.MV_USB_SetEventNodeNum.restype = c_uint
+ return MvCamCtrldll.MV_USB_SetEventNodeNum(self.handle, c_uint(nEventNodeNum))
+
+
+ ##
+ # @~chinese
+ # @brief 璁剧疆U3V鐨勫悓姝ヨ鍐欒秴鏃舵椂闂达紝鑼冨洿涓�:[1000, INT_MAX]
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param nMills [IN] 璁剧疆鍚屾璇诲啓瓒呮椂鏃堕棿,榛樿鏃堕棿涓�1000ms
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+ # @remarks 澧炲姞璁剧疆鍚屾璇诲彇鏃堕棿鎺ュ彛锛屽吋瀹归儴鍒嗙浉鏈洪厤缃弬鏁板緢鎱紝瓒呰繃1000ms鐨勬儏鍐�
+
+ # @~english
+ # @brief Set U3V Synchronisation timeout,range:[1000, INT_MAX]
+ # @param handle [IN] Device handle
+ # @param nMills [IN] set synchronisation timeout(ms),default 1000ms
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks Increasing the SetSyncTimeOut can compatible with some camera configuretion parameters very slow,more than 1000ms
+ def MV_USB_SetSyncTimeOut(self, nMills):
+ MvCamCtrldll.MV_USB_SetSyncTimeOut.argtype = (c_void_p, c_uint)
+ MvCamCtrldll.MV_USB_SetSyncTimeOut.restype = c_uint
+ return MvCamCtrldll.MV_USB_SetSyncTimeOut(self.handle, c_uint(nMills))
+
+ ##
+ # @~chinese
+ # @brief 鑾峰彇U3V鐩告満鍚屾璇诲啓瓒呮椂鏃堕棿
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param pnMills [IN][OUT] 鑾峰彇鐨勮秴鏃舵椂闂�(ms)
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+ # @remarks 璇ユ帴鍙g敤浜庤幏鍙栧綋鍓嶇殑U3V鍚屾璇诲啓瓒呮椂鏃堕棿澶у皬锛岄粯璁�1000ms銆�
+
+ # @~english
+ # @brief Get U3V Camera Synchronisation timeout
+ # @param handle [IN] Device handle
+ # @param pnMills [IN][OUT] Get Synchronisation time(ms)
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This interface is used to get the current U3V timeout, default 1000ms.
+ def MV_USB_GetSyncTimeOut(self, nMills):
+ MvCamCtrldll.MV_USB_GetSyncTimeOut.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_USB_GetSyncTimeOut.restype = c_uint
+ return MvCamCtrldll.MV_USB_GetSyncTimeOut(self.handle, byref(nMills))
+ ## @}
+
+ ## @addtogroup ch: GenTL鐩稿叧鎺ュ彛 | en: GenTL related interface
+ ## @{
+
+ ##
+ # @~chinese
+ # @brief 閫氳繃GenTL鏋氫妇Interfaces
+ # @param pstIFList [IN][OUT] Interfaces鍒楄〃
+ # @param strGenTLPath [IN] GenTL鐨刢ti鏂囦欢璺緞
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks Interfaces鍒楄〃鐨勫唴瀛樻槸鍦⊿DK鍐呴儴鍒嗛厤鐨勶紝澶氱嚎绋嬭皟鐢ㄨ鎺ュ彛鏃朵細杩涜璁惧鍒楄〃鍐呭瓨鐨勯噴鏀惧拰鐢宠
+ # 寤鸿灏介噺閬垮厤澶氱嚎绋嬫灇涓炬搷浣溿��
+ # 鏆備笉鏀寔宸ヤ笟鐩告満SDK鐩存帴璋冪敤MvProducerU3V.cti鍜孧vProducerGEV.cti锛� 鏀寔璋冪敤鍏朵粬.cti
+
+ # @~english
+ # @brief Enumerate Interfaces with GenTL
+ # @param pstIFList [IN][OUT] Interfaces List
+ # @param strGenTLPath [IN] GenTL cti file path
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks The memory of the Interfaces list is allocated within the SDK. When the interface is invoked by multiple threads, the memory of the device list will be released and applied.\n
+ # It is recommended to avoid multithreaded enumeration operations as much as possible.
+ # Currently not supported for SDK to directly call MvProducerU3V. cti and MvProducerGEV. cti. supports calling other. cti
+ def MV_CC_EnumInterfacesByGenTL(stIFList, strGenTLPath):
+ MvCamCtrldll.MV_CC_EnumInterfacesByGenTL.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_EnumInterfacesByGenTL.restype = c_uint
+ return MvCamCtrldll.MV_CC_EnumInterfacesByGenTL(byref(stIFList), strGenTLPath.encode('ascii'))
+
+ ##
+ # @~chinese
+ # @brief 閫氳繃GenTL Interface鏋氫妇璁惧
+ # @param pstIFInfo [IN] Interface淇℃伅
+ # @param pstDevList [IN][OUT] 璁惧鍒楄〃
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璁惧鍒楄〃鐨勫唴瀛樻槸鍦⊿DK鍐呴儴鍒嗛厤鐨勶紝澶氱嚎绋嬭皟鐢ㄨ鎺ュ彛鏃朵細杩涜璁惧鍒楄〃鍐呭瓨鐨勯噴鏀惧拰鐢宠
+ # 寤鸿灏介噺閬垮厤澶氱嚎绋嬫灇涓炬搷浣溿��
+
+ # @~english
+ # @brief Enumerate Devices with GenTL interface
+ # @param pstIFInfo [IN] Interface information
+ # @param pstDevList [IN][OUT] Device List
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks The memory of the list is allocated within the SDK. When the interface is invoked by multiple threads, the memory of the device list will be released and applied.\n
+ # It is recommended to avoid multithreaded enumeration operations as much as possible.
+ def MV_CC_EnumDevicesByGenTL(stIFInfo, stDevList):
+ MvCamCtrldll.MV_CC_EnumDevicesByGenTL.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_EnumDevicesByGenTL.restype = c_uint
+ return MvCamCtrldll.MV_CC_EnumDevicesByGenTL(stIFInfo, byref(stDevList))
+
+ ##
+ # @~chinese
+ # @brief 鍗歌浇cti搴�
+ # @param pGenTLPath [IN] 鏋氫妇鍗℃椂鍔犺浇鐨刢ti鏂囦欢璺緞
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 鍗歌浇鍓嶉渶瑕佷繚璇侀�氳繃璇ti鏋氫妇鍑虹殑鐩告満宸插叏閮ㄥ叧闂紝鍚﹀垯鎶ラ敊鍓嶇疆鏉′欢閿欒銆�
+
+ # @~english
+ # @brief Unload cti library
+ # @param pGenTLPath [IN] GenTL cti file path
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks Make sure that all devices enumerated by this cti are already closed.
+ @staticmethod
+ def MV_CC_UnloadGenTLLibrary(GenTLPath):
+ MvCamCtrldll.MV_CC_UnloadGenTLLibrary.argtype = (c_void_p)
+ MvCamCtrldll.MV_CC_UnloadGenTLLibrary.restype = c_uint
+ return MvCamCtrldll.MV_CC_UnloadGenTLLibrary(GenTLPath.encode('ascii'))
+
+ ##
+ # @~chinese
+ # @brief 閫氳繃GenTL璁惧淇℃伅鍒涘缓璁惧鍙ユ焺
+ # @param handle [IN][OUT] 璁惧鍙ユ焺
+ # @param pstDevInfo [IN] 璁惧淇℃伅缁撴瀯浣撴寚閽�
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 鏍规嵁杈撳叆鐨勮澶囦俊鎭紝鍒涘缓搴撳唴閮ㄥ繀椤荤殑璧勬簮鍜屽垵濮嬪寲鍐呴儴妯″潡銆�
+
+ # @~english
+ # @brief Create Device Handle with GenTL Device Info
+ # @param handle [IN][OUT] Device handle
+ # @param pstDevInfo [IN] Device Information
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks Create required resources within library and initialize internal module according to input device information.
+ def MV_CC_CreateHandleByGenTL(self, stDevInfo):
+ MvCamCtrldll.MV_CC_CreateHandleByGenTL.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_CreateHandleByGenTL.restype = c_uint
+ return MvCamCtrldll.MV_CC_CreateHandleByGenTL(byref(self.handle), byref(stDevInfo))
+ ## @}
+
+
+ ## @addtogroup ch: 鍥惧儚淇濆瓨銆佹牸寮忚浆鎹㈢瓑鐩稿叧鎺ュ彛 | en: Related image save and format convert interface
+ ## @{
+
+ ##
+ # @~chinese
+ # @brief 淇濆瓨鍥剧墖锛屾敮鎸丅mp鍜孞peg.
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param pstSaveParam [IN][OUT] 淇濆瓨鍥剧墖鍙傛暟缁撴瀯浣�
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 閫氳繃璇ユ帴鍙e彲浠ュ皢浠庤澶囬噰闆嗗埌鐨勫師濮嬪浘鍍忔暟鎹浆鎹㈡垚JPEG鎴栬�匓MP绛夋牸寮忓苟瀛樻斁鍦ㄦ寚瀹氬唴瀛樹腑锛岀劧鍚庣敤鎴峰彲浠ュ皢杞崲涔嬪悗鐨勬暟鎹洿鎺ヤ繚瀛樻垚鍥剧墖鏂囦欢銆�
+ # 璇ユ帴鍙h皟鐢ㄦ棤鎺ュ彛椤哄簭瑕佹眰锛屾湁鍥惧儚婧愭暟鎹氨鍙互杩涜杞崲锛屽彲浠ュ厛璋冪敤MV_CC_GetOneFrameTimeout鎴栬�匨V_CC_RegisterImageCallBackEx璁剧疆鍥炶皟鍑芥暟锛岃幏鍙栦竴甯у浘鍍忔暟鎹紝鐒跺悗鍐嶉�氳繃璇ユ帴鍙h浆鎹㈡牸寮忋��
+ # 璇ユ帴鍙f敮鎸佸浘鍍� 瀹姐�侀珮銆佹�婚暱鏈�澶ц嚦 UINT_MAX, 鍏朵腑MV_CC_SaveImageEx2鏀寔 瀹姐�侀珮銆佹�婚暱鏈�澶ц嚦 USHRT_MAX
+ # JPEG鏍煎紡鏈�澶ф敮鎸佸楂樹负65500
+
+ # @~english
+ # @brief Save image, support Bmp and Jpeg.
+ # @param handle [IN] Device handle
+ # @param pstSaveParam [IN][OUT] Save image parameters structure
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks Once there is image data, you can call this API to convert the data.
+ # You can also call MV_CC_GetOneFrameTimeout or MV_CC_RegisterImageCallBackEx or MV_CC_GetImageBuffer to get one image frame and set the callback function, and then call this API to convert the format.
+ # Comparing with the API MV_CC_SaveImageEx2, this API support the parameter nWidth/nHeight/nDataLen to UINT_MAX.
+ # JPEG format supports a maximum width and height of 65500
+ def MV_CC_SaveImageEx3(self, stSaveParam):
+ MvCamCtrldll.MV_CC_SaveImageEx3.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_SaveImageEx3.restype = c_uint
+ return MvCamCtrldll.MV_CC_SaveImageEx3(self.handle, byref(stSaveParam))
+
+ ##
+ # @~chinese
+ # @brief 淇濆瓨鍥惧儚鍒版枃浠�
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param pstSaveFileParam [IN][OUT] 淇濆瓨鍥剧墖鏂囦欢鍙傛暟缁撴瀯浣�
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璇ユ帴鍙f敮鎸丅MP/JPEG/PNG/TIFF銆�
+ # 璇ユ帴鍙f敮鎸佸浘鍍� 瀹姐�侀珮銆佹�婚暱鏈�澶ц嚦 UINT_MAX
+ # JPEG鏍煎紡鏈�澶ф敮鎸佸楂樹负65500
+ # Windows骞冲彴鏂囦欢璺緞闀垮害涓嶈秴杩�260瀛楄妭锛孡inux骞冲彴涓嶈秴杩�255瀛楄妭
+
+ # @~english
+ # @brief Save the image file.
+ # @param handle [IN] Device handle
+ # @param pstSaveFileParam [IN][OUT] Save the image file parameter structure
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This API support BMP/JPEG/PNG/TIFF.
+ # this API support the parameter nWidth/nHeight/nDataLen to UINT_MAX.
+ # JPEG format supports a maximum width and height of 65500
+ # The file path length on the Windows platform does not exceed 260 bytes, and on the Linux platform, it does not exceed 255 bytes.
+ def MV_CC_SaveImageToFileEx(self, pstSaveFileParam):
+ MvCamCtrldll.MV_CC_SaveImageToFileEx.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_SaveImageToFileEx.restype = c_uint
+ return MvCamCtrldll.MV_CC_SaveImageToFileEx(self.handle, byref(pstSaveFileParam))
+
+ ##
+ # @~chinese
+ # @brief 淇濆瓨鍥惧儚鍒版枃浠�
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param pstImage [IN] 鍥惧儚淇℃伅
+ # @param pSaveImageParam [IN] 瀛樺浘鍙傛暟
+ # @param pcImagePath [IN] 瀛樺浘璺緞
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璇ユ帴鍙f敮鎸�4G浠ヤ笂瓒呭ぇ鍥剧殑PNG/TIFF瀛樺浘锛岄潪瓒呭ぇ鍥惧儚鏀寔BMP/JPEG/TIFF/PNG
+ # JPEG鏍煎紡鏈�澶ф敮鎸佸楂樹负65500
+ # Windows骞冲彴鏂囦欢璺緞闀垮害涓嶈秴杩�260瀛楄妭锛孡inux骞冲彴涓嶈秴杩�255瀛楄妭
+
+ # @~english
+ # @brief Save the image file.
+ # @param handle [IN] Device handle
+ # @param pstImage [IN] Image information
+ # @param pSaveImageParam [IN] Save the image file parameter structure
+ # @param pcImagePath [IN] Image path
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks When the image size exceeds 4GB, only PNG and TIFF are supported. Otherwise, BMP,JPEG,TIFF and PNG are supported.
+ # JPEG format supports a maximum width and height of 65500
+ # The file path length on the Windows platform does not exceed 260 bytes, and on the Linux platform, it does not exceed 255 bytes.
+ def MV_CC_SaveImageToFileEx2(self, pstImage, pSaveImageParam, pcImagePath):
+ MvCamCtrldll.MV_CC_SaveImageToFileEx2.argtype = (c_void_p, c_void_p, c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_SaveImageToFileEx2.restype = c_uint
+ return MvCamCtrldll.MV_CC_SaveImageToFileEx2(self.handle, byref(pstImage), byref(pSaveImageParam), pcImagePath.encode('ascii'))
+
+ ##
+ # @~chinese
+ # @brief 鍥惧儚鏃嬭浆
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param pstRotateParam [IN][OUT] 鍥惧儚鏃嬭浆鍙傛暟缁撴瀯浣�
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璇ユ帴鍙e彧鏀寔MONO8/RGB24/BGR24鏍煎紡鏁版嵁鐨�90/180/270搴︽棆杞��
+
+ # @~english
+ # @brief Rotate Image
+ # @param handle [IN] Device handle
+ # @param pstRotateParam [IN][OUT] Rotate image parameter structure
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This API only support 90/180/270 rotation of data in the MONO8/RGB24/BGR24 format.
+ def MV_CC_RotateImage(self, stRotateParam):
+ MvCamCtrldll.MV_CC_RotateImage.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_RotateImage.restype = c_uint
+ return MvCamCtrldll.MV_CC_RotateImage(self.handle, byref(stRotateParam))
+
+ ##
+ # @~chinese
+ # @brief 鍥惧儚缈昏浆
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param pstFlipParam [IN][OUT] 鍥惧儚缈昏浆鍙傛暟缁撴瀯浣�
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璇ユ帴鍙e彧鏀寔MONO8/RGB24/BGR24鏍煎紡鏁版嵁鐨勫瀭鐩村拰姘村钩缈昏浆銆�
+
+ # @~english
+ # @brief Flip Image
+ # @param handle [IN] Device handle
+ # @param pstFlipParam [IN][OUT] Flip image parameter structure
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This API only support vertical and horizontal reverse of data in the MONO8/RGB24/BGR24 format.
+ def MV_CC_FlipImage(self, pstFlipParam):
+ MvCamCtrldll.MV_CC_FlipImage.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_FlipImage.restype = c_uint
+ return MvCamCtrldll.MV_CC_FlipImage(self.handle, byref(pstFlipParam))
+
+ ##
+ # @~chinese
+ # @brief 鍍忕礌鏍煎紡杞崲
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param pstCvtParam [IN][OUT] 鍍忕礌鏍煎紡杞崲鍙傛暟缁撴瀯浣�
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 閫氳繃灏嗘帴鍙e彲浠ュ皢浠庤澶囬噰闆嗗埌鐨勫師濮嬪浘鍍忔暟鎹浆鎹㈡垚鐢ㄦ埛鎵�闇�鐨勫儚绱犳牸寮忓苟瀛樻斁鍦ㄦ寚瀹氬唴瀛樹腑銆�
+ # 璇ユ帴鍙h皟鐢ㄦ棤鎺ュ彛椤哄簭瑕佹眰锛屾湁鍥惧儚婧愭暟鎹氨鍙互杩涜杞崲锛屽彲浠ュ厛璋冪敤MV_CC_GetOneFrameTimeout鎴栬�匨V_CC_RegisterImageCallBackEx璁剧疆鍥炶皟鍑芥暟锛�
+ # 鑾峰彇涓�甯у浘鍍忔暟鎹紝鐒跺悗鍐嶉�氳繃璇ユ帴鍙h浆鎹㈡牸寮忋�傚鏋滆澶囧綋鍓嶉噰闆嗗浘鍍忔槸JPEG鍘嬬缉鐨勬牸寮忥紝鍒欎笉鏀寔璋冪敤璇ユ帴鍙h繘琛岃浆鎹€��
+ # 璇ユ帴鍙f敮鎸佸浘鍍� 瀹姐�侀珮銆佹�婚暱鏈�澶ц嚦 UINT_MAX, 鍏朵腑MV_CC_ConvertPixelType鏀寔 瀹姐�侀珮銆佹�婚暱鏈�澶ц嚦 USHRT_MAX
+
+ # @~english
+ # @brief Pixel format conversion
+ # @param handle [IN] Device handle
+ # @param pstCvtParam [IN][OUT] Convert Pixel Type parameter structure
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This API is used to transform the collected original data to pixel format and save to specified memory.
+ # There is no order requirement to call this API, the transformation will execute when there is image data.
+ # First call MV_CC_GetOneFrameTimeout or MV_CC_RegisterImageCallBackEx to set callback function, and get a frame of image data,
+ # then call this API to transform the format.
+ # Comparing with the API MV_CC_ConvertPixelType, this API support the parameter nWidth/nHeight/nSrcDataLen to UINT_MAX.
+ def MV_CC_ConvertPixelTypeEx(self, pstCvtParam):
+ MvCamCtrldll.MV_CC_ConvertPixelTypeEx.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_ConvertPixelTypeEx.restype = c_uint
+ return MvCamCtrldll.MV_CC_ConvertPixelTypeEx(self.handle, byref(pstCvtParam))
+
+ ##
+ # @~chinese
+ # @brief 璁剧疆鎻掑�肩畻娉曠被鍨�
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param nBayerCvtQuality [IN] Bayer鐨勬彃鍊兼柟娉� 0-蹇�� 1-鍧囪 锛堥粯璁や负鍧囪 锛� 2-鏈�浼� 3-鏈�浼�+
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璁剧疆鍐呴儴鍥惧儚杞崲鎺ュ彛鐨凚ayer鎻掑�肩畻娉曠被鍨嬪弬鏁帮紝MV_CC_ConvertPixelTypeEx銆丮V_CC_GetImageForRGB/BGR鎺ュ彛鍐呴儴浣跨敤鐨勬彃鍊肩畻娉曟槸璇ユ帴鍙f墍璁惧畾鐨勩��
+
+ # @~english
+ # @brief Interpolation algorithm type setting
+ # @param handle [IN] Device handle
+ # @param nBayerCvtQuality [IN] Bayer interpolation method 0-Fast 1-Equilibrium 2-Optimal
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks Set the bell interpolation quality parameters of the internal image conversion interface,
+ # and the interpolation algorithm used in the MV_CC_ConvertPixelTypeEx and MV_CC_GetImageForRGB/BGR interfaces is set by this interface.
+ def MV_CC_SetBayerCvtQuality(self, nBayerCvtQuality):
+ MvCamCtrldll.MV_CC_SetBayerCvtQuality.argtype = (c_void_p, c_uint)
+ MvCamCtrldll.MV_CC_SetBayerCvtQuality.restype = c_uint
+ return MvCamCtrldll.MV_CC_SetBayerCvtQuality(self.handle, c_uint(nBayerCvtQuality))
+
+ ##
+ # @~chinese
+ # @brief 鎻掑�肩畻娉曞钩婊戜娇鑳借缃�
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param bFilterEnable [IN] 骞虫粦浣胯兘(榛樿鍏抽棴)
+ # @return 鎴愬姛锛岃繑鍥�#MV_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璁剧疆鍐呴儴鍥惧儚杞崲鎺ュ彛鐨凚ayer鎻掑�煎钩婊戜娇鑳藉弬鏁帮紝MV_CC_ConvertPixelTypeEx銆丮V_CC_SaveImageEx3銆丮V_CC_SaveImageToFileEx鎺ュ彛鍐呴儴浣跨敤鐨勬彃鍊肩畻娉曟槸璇ユ帴鍙f墍璁惧畾鐨勩��
+
+ # @~english
+ # @brief Filter type of the bell interpolation quality algorithm setting
+ # @param handle [IN] Device handle
+ # @param bFilterEnable [IN] Filter type enable
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks Set the Bayer interpolation filter type parameters of the internal image conversion interface, and the interpolation algorithm used in the MV_CC_ConvertPixelTypeEx \ MV_CC_SaveImageEx3 \ MV_CC_SaveImageToFileEx interfaces is set by this interface.
+ def MV_CC_SetBayerFilterEnable(self, bFilterEnable):
+ MvCamCtrldll.MV_CC_SetBayerFilterEnable.argtype = (c_void_p, c_bool)
+ MvCamCtrldll.MV_CC_SetBayerFilterEnable.restype = c_uint
+ return MvCamCtrldll.MV_CC_SetBayerFilterEnable(self.handle, c_bool(bFilterEnable))
+
+ ##
+ # @~chinese
+ # @brief 璁剧疆Bayer鏍煎紡鐨凣amma鍊�
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param fBayerGammaValue [IN] Gamma鍊�:0.1 ~ 4.0
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璁剧疆璇ュ�煎悗锛屽湪Bayer鍥惧儚锛圔ayer8/10/12/16锛夎浆RGB/BGR鍥惧儚(RGB24/48銆丷GBA32/64銆丅GR24/48銆丅GRA32/64)鏃惰捣鏁堛�� 鐩稿叧鎺ュ彛锛� MV_CC_ConvertPixelTypeEx銆� MV_CC_SaveImageEx3銆丮V_CC_SaveImageToFileEx銆�
+
+ # @~english
+ # @brief Set Gamma value
+ # @param handle [IN] Device handle
+ # @param fBayerGammaValue [IN] Gamma value[0.1,4.0]
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks After setting this value, it takes effect when converting Bayer images (Bayer8/10/12/16) to RGB/BGR images (RGB24/48, RGBA32/64, BGR24/48, BGRA32/64). Related interfaces: MV_CC_ConvertPixelTypeEx, MV_CC_SaveImageEx3, MV_CC_SaveImageToFileEx.
+ def MV_CC_SetBayerGammaValue(self, fBayerGammaValue):
+ MvCamCtrldll.MV_CC_SetBayerGammaValue.argtype = (c_void_p, c_float)
+ MvCamCtrldll.MV_CC_SetBayerGammaValue.restype = c_uint
+ return MvCamCtrldll.MV_CC_SetBayerGammaValue(self.handle, c_float(fBayerGammaValue))
+
+ ##
+ # @~chinese
+ # @brief 璁剧疆Mono8/Bayer8/10/12/16鏍煎紡鐨凣amma鍊�
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param MvGvspPixelType enSrcPixelType [IN] 鍍忕礌鏍煎紡,鏀寔PixelType_Gvsp_Mono8,Bayer8/10/12/16
+ # @param fGammaValue [IN] Gamma鍊�:0.1 ~ 4.0
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璁剧疆Mono8鐨刧amma鍊煎悗锛屽湪璋冪敤MV_CC_ConvertPixelTypeEx鎺ュ彛灏哅ono8杞垚Mono8鏃秅amma鍊艰捣鏁堛��
+ # @remarks 璁剧疆Bayer鐨刧amma鍊煎悗锛屽湪Bayer鍥惧儚锛圔ayer8/10/12/16锛夎浆RGB/BGR鍥惧儚(RGB24/48銆丷GBA32/64銆丅GR24/48銆丅GRA32/64)鏃惰捣鏁堛�傜浉鍏虫帴鍙o細 MV_CC_ConvertPixelTypeEx銆� MV_CC_SaveImageEx3銆丮V_CC_SaveImageToFileEx銆�
+ # @remarks 璇ユ帴鍙e吋瀹筂V_CC_SetBayerGammaValue鎺ュ彛锛屾柊澧炴敮鎸丮ono8鍍忕礌鏍煎紡
+
+ # @~english
+ # @brief Set Gamma value
+ # @param handle [IN] Device handle
+ # @param MvGvspPixelType enSrcPixelType [IN] PixelType,support PixelType_Gvsp_Mono8,Bayer8/10/12/16
+ # @param fGammaValue [IN] Gamma value:0.1~ 4.0
+ # @remarks After setting the gamma of Mono8 锛宼he gamma value takes effect when calling MV_CC_ConvertPixelTypeEx converts Mono8 to Mono8.
+ # @remarks After setting the gamma value for Bayer8/10/12/16, it takes effect when converting the Bayer image (Bayer8/10/12/16) to RGB/BGR images (RGB24/48, RGBA32/64, BGR24/48, BGRA32/64). Relevant interfaces: MV_CC_ConvertPixelTypeEx, MV_CC_SaveImageEx3, MV_CC_SaveImageToFileEx.
+ # @remarks This API compatible with MV_CC_SetBayerGammaValue, adds Mono8 PixelType.
+ # @return Success, return MV_OK. Failure, return error code
+ def MV_CC_SetGammaValue(self, enSrcPixelType, fGammaValue):
+ MvCamCtrldll.MV_CC_SetGammaValue.argtype = (c_void_p, c_int, c_float)
+ MvCamCtrldll.MV_CC_SetGammaValue.restype = c_uint
+ return MvCamCtrldll.MV_CC_SetGammaValue(self.handle, c_int(enSrcPixelType), c_float(fGammaValue))
+
+ ##
+ # @~chinese
+ # @brief 璁剧疆Bayer鏍煎紡鐨凣amma淇℃伅
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param pstGammaParam [IN] Gamma淇℃伅
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璁剧疆璇ュ�煎悗锛屽湪Bayer鍥惧儚锛圔ayer8/10/12/16锛夎浆RGB/BGR鍥惧儚(RGB24/48銆丷GBA32/64銆丅GR24/48銆丅GRA32/64)鏃惰捣鏁堛�� 鐩稿叧鎺ュ彛锛� MV_CC_ConvertPixelTypeEx銆� MV_CC_SaveImageEx3銆丮V_CC_SaveImageToFileEx銆�
+
+ # @~english
+ # @brief Set Gamma param
+ # @param handle [IN] Device handle
+ # @param pstGammaParam [IN] Gamma param
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks After setting this value, it takes effect when converting Bayer images (Bayer8/10/12/16) to RGB/BGR images (RGB24/48, RGBA32/64, BGR24/48, BGRA32/64). Related interfaces: MV_CC_ConvertPixelTypeEx, MV_CC_SaveImageEx3, MV_CC_SaveImageToFileEx.
+ def MV_CC_SetBayerGammaParam(self, stGammaParam):
+ MvCamCtrldll.MV_CC_SetBayerGammaParam.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_SetBayerGammaParam.restype = c_uint
+ return MvCamCtrldll.MV_CC_SetBayerGammaParam(self.handle, byref(stGammaParam))
+
+ ##
+ # @~chinese
+ # @brief 璁剧疆Bayer鏍煎紡鐨凜CM浣胯兘鍜岀煩闃碉紝閲忓寲绯绘暟榛樿1024
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param pstCCMParam [IN] CCM鍙傛暟
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 寮�鍚疌CM骞惰缃瓹CM鐭╅樀鍚庯紝鍦˙ayer鍥惧儚锛圔ayer8/10/12/16锛夎浆RGB/BGR鍥惧儚(RGB24/48銆丷GBA32/64銆丅GR24/48銆丅GRA32/64)鏃惰捣鏁堛�� 鐩稿叧鎺ュ彛锛� MV_CC_ConvertPixelTypeEx銆� MV_CC_SaveImageEx3銆丮V_CC_SaveImageToFileEx銆�
+
+ # @~english
+ # @brief Set CCM param,Scale default 1024
+ # @param handle [IN] Device handle
+ # @param pstCCMParam [IN] CCM parameter structure
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks After enable the color correction and set the color correction matrix, it takes effect when converting Bayer images (Bayer8/10/12/16) to RGB/BGR images (RGB24/48, RGBA32/64, BGR24/48, BGRA32/64). Related interfaces: MV_CC_ConvertPixelTypeEx, MV_CC_SaveImageEx3, MV_CC_SaveImageToFileEx.
+ def MV_CC_SetBayerCCMParam(self, stCCMParam):
+ MvCamCtrldll.MV_CC_SetBayerCCMParam.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_SetBayerCCMParam.restype = c_uint
+ return MvCamCtrldll.MV_CC_SetBayerCCMParam(self.handle, byref(stCCMParam))
+
+ ##
+ # @~chinese
+ # @brief 璁剧疆Bayer鏍煎紡鐨凜CM浣胯兘鍜岀煩闃�
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param pstCCMParam [IN] CCM鍙傛暟
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 寮�鍚疌CM骞惰缃瓹CM鐭╅樀鍚庯紝鍦˙ayer鍥惧儚锛圔ayer8/10/12/16锛夎浆RGB/BGR鍥惧儚(RGB24/48銆丷GBA32/64銆丅GR24/48銆丅GRA32/64)鏃惰捣鏁堛�� 鐩稿叧鎺ュ彛锛� MV_CC_ConvertPixelTypeEx銆� MV_CC_SaveImageEx3銆丮V_CC_SaveImageToFileEx銆�
+
+ # @~english
+ # @brief Set CCM param
+ # @param handle [IN] Device handle
+ # @param pstCCMParam [IN] CCM parameter structure
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks After enable the color correction and set the color correction matrix, it takes effect when converting Bayer images (Bayer8/10/12/16) to RGB/BGR images (RGB24/48, RGBA32/64, BGR24/48, BGRA32/64). Related interfaces: MV_CC_ConvertPixelTypeEx, MV_CC_SaveImageEx3, MV_CC_SaveImageToFileEx.
+ def MV_CC_SetBayerCCMParamEx(self, stCCMParam):
+ MvCamCtrldll.MV_CC_SetBayerCCMParamEx.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_SetBayerCCMParamEx.restype = c_uint
+ return MvCamCtrldll.MV_CC_SetBayerCCMParamEx(self.handle, byref(stCCMParam))
+
+ ##
+ # @~chinese
+ # @brief 鍥惧儚瀵规瘮搴﹁皟鑺�
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param pstContrastParam [IN][OUT] 瀵规瘮搴﹁皟鑺傚弬鏁�
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks
+
+ # @~english
+ # @brief Adjust image contrast
+ # @param handle [IN] Device handle
+ # @param pstContrastParam [IN][OUT] Contrast parameter structure
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks
+ def MV_CC_ImageContrast(self, stConstrastParam):
+ MvCamCtrldll.MV_CC_ImageContrast.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_ImageContrast.restype = c_uint
+ return MvCamCtrldll.MV_CC_ImageContrast(self.handle, byref(stConstrastParam))
+
+ ##
+ # @~chinese
+ # @brief 鍥惧儚鍘荤传杈�
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param pstPurpleFringingParam [IN][OUT] 鍘荤传杈瑰弬鏁�
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 鍍忕礌鏍煎紡浠呮敮鎸丳ixelType_Gvsp_RGB8_Packed鍜孭ixelType_Gvsp_BGR8_Packed
+
+ # @~english
+ # @brief Remove the purple edge from the image.
+ # @param handle [IN] Device handle
+ # @param pstPurpleFringingParam [IN][OUT] PurpleFringing parameter structure
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks Only supports PixelType_Gvsp_RGB8_Packed and PixelType_Gvsp_BGR8_Packed.
+ def MV_CC_PurpleFringing(self, pstPurpleFringingParam):
+ MvCamCtrldll.MV_CC_PurpleFringing.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_PurpleFringing.restype = c_uint
+ return MvCamCtrldll.MV_CC_PurpleFringing(self.handle, byref(pstPurpleFringingParam))
+
+ ##
+ # @~chinese
+ # @brief 璁剧疆ISP鍙傛暟
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param pstParam [IN] ISP閰嶇疆鍙傛暟
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+
+ # @~english
+ # @brief Set ISP configuration.
+ # @param handle [IN] Device handle
+ # @param pstParam [IN][OUT] ISP parameter structure
+ # @return Success, return MV_OK. Failure, return error code
+ def MV_CC_SetISPConfig(self, pstParam):
+ MvCamCtrldll.MV_CC_SetISPConfig.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_SetISPConfig.restype = c_uint
+ return MvCamCtrldll.MV_CC_SetISPConfig(self.handle, byref(pstParam))
+
+ ##
+ # @~chinese
+ # @brief 瀵瑰浘鍍忚繘琛孖SP绠楁硶澶勭悊
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param pstInputImage [IN] 杈撳叆鍥惧儚缁撴瀯浣�
+ # @param pstOutputImage [IN][OUT] 杈撳嚭鍥惧儚缁撴瀯浣�
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 闇�瑕佸厛璋冪敤MV_CC_SetISPConfig浼犲叆閰嶇疆鏂囦欢, 閰嶇疆鏂囦欢鐢盜SP宸ュ叿鐢熸垚
+
+ # @~english
+ # @brief ISP process.
+ # @param handle [IN] Device handle
+ # @param pstInputImage [IN] Input image structure
+ # @param pstOutputImage [IN][OUT] Output image structure
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks The Interface should be called after MV_CC_SetISPConfig.
+ def MV_CC_ISPProcess(self, pstInputImage, pstOutputImage):
+ MvCamCtrldll.MV_CC_ISPProcess.argtype = (c_void_p, c_void_p, pstOutputImage)
+ MvCamCtrldll.MV_CC_ISPProcess.restype = c_uint
+ return MvCamCtrldll.MV_CC_ISPProcess(self.handle, byref(pstInputImage), byref(pstOutputImage))
+
+
+ ##
+ # @~chinese
+ # @brief 鏃犳崯瑙g爜
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param pstDecodeParam [IN][OUT] 鏃犳崯瑙g爜鍙傛暟缁撴瀯浣�
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 灏嗕粠鐩告満涓彇鍒扮殑鏃犳崯鍘嬬缉鐮佹祦瑙g爜鎴愯8鏁版嵁锛屽悓鏃舵敮鎸佽В鏋愬綋鍓嶇浉鏈哄疄鏃跺浘鍍忕殑姘村嵃淇℃伅锛堝鏋滆緭鍏ョ殑鏃犳崯鐮佹祦涓嶆槸褰撳墠鐩告満鎴栬�呬笉鏄疄鏃跺彇娴佺殑锛屽垯姘村嵃瑙f瀽鍙兘寮傚父锛�;
+ # 鑻ヨВ鐮佸け璐ワ紝璇锋鏌ヤ互涓嬫儏鍐碉細锛�1锛夐渶瑕丆PU鏀寔 SSE AVX鎸囦护闆嗭紙2锛夎嫢褰撳墠甯у紓甯革紙涓㈠寘绛夛級,鍙兘瀵艰嚧瑙g爜寮傚父锛�3锛夌浉鏈哄嚭鍥惧紓甯革紝 鍗充娇涓嶄涪鍖呬篃浼氬紓甯�
+
+ # @~english
+ # @brief High Bandwidth Decode
+ # @param handle [IN] Device handle
+ # @param pstDecodeParam [IN][OUT] High Bandwidth Decode parameter structure
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks Decode the lossless compressed data from the camera into raw data锛孉t the same time, it supports parsing the watermark information of the real-time image of the current camera (if the input lossless code stream is not the current camera or is not real-time streaming, the watermark parsing may be abnormal);
+ # If decoding fails, please check the following: (1) The CPU is required to support the SSE AVX instruction set. (2) If the current frame is abnormal (packet loss, etc.), it may cause decoding exceptions. (3) The camera plot is abnormal, even if there is no packet loss, it may cause exceptions
+ def MV_CC_HBDecode(self, stDecodeParam):
+ MvCamCtrldll.MV_CC_HB_Decode.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_HB_Decode.restype = c_uint
+ return MvCamCtrldll.MV_CC_HB_Decode(self.handle, byref(stDecodeParam))
+
+ ##
+ # @~chinese
+ # @brief 鍦ㄥ浘鍍忎笂缁樺埗鐭╁舰妗嗚緟鍔╃嚎
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param pRectInfo [IN] 鐭╁舰杈呭姪绾跨殑淇℃伅
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璇ユ帴鍙d粎鏀寔windows骞冲彴
+
+ # @~english
+ # @brief Draw Rect Auxiliary Line
+ # @param handle [IN] Device handle
+ # @param pRectInfo [IN] Rect Auxiliary Line Info
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This interface only supports windows platform.
+ def MV_CC_DrawRect(self, stRectInfo):
+ MvCamCtrldll.MV_CC_DrawRect.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_DrawRect.restype = c_uint
+ return MvCamCtrldll.MV_CC_DrawRect(self.handle, byref(stRectInfo))
+
+
+ ##
+ # @~chinese
+ # @brief 鍦ㄥ浘鍍忎笂缁樺埗鍦嗗舰杈呭姪绾�
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param pCircleInfo [IN] 鍦嗗舰杈呭姪绾跨殑淇℃伅
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璇ユ帴鍙d粎鏀寔windows骞冲彴
+
+ # @~english
+ # @brief Draw Circle Auxiliary Line
+ # @param handle [IN] Device Handle
+ # @param pCircleInfo [IN] Circle Auxiliary Line Info
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This interface only supports windows platform.
+ def MV_CC_DrawCircle(self, stCircleInfo):
+ MvCamCtrldll.MV_CC_DrawCircle.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_DrawCircle.restype = c_uint
+ return MvCamCtrldll.MV_CC_DrawCircle(self.handle, byref(stCircleInfo))
+
+ ##
+ # @~chinese
+ # @brief 鍦ㄥ浘鍍忎笂缁樺埗绾挎潯
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param pLinesInfo [IN] 绾挎潯杈呭姪绾夸俊鎭�
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 璇ユ帴鍙d粎鏀寔windows骞冲彴
+
+ # @~english
+ # @brief Draw Line Auxiliary Line
+ # @param handle [IN] Device Handle
+ # @param pLinesInfo [IN] Linear Auxiliary Line Info
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This interface only supports windows platform.
+ def MV_CC_DrawLines(self, stLineInfo):
+ MvCamCtrldll.MV_CC_DrawLines.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_DrawLines.restype = c_uint
+ return MvCamCtrldll.MV_CC_DrawLines(self.handle, byref(stLineInfo))
+
+ ##
+ # @~chinese
+ # @brief 寮�濮嬪綍鍍�
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param pstRecordParam [IN] 褰曞儚鍙傛暟缁撴瀯浣�
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # 璇ユ帴鍙f渶澶ф敮鎸乄idth#Height涓�8000#8000澶у皬锛屽惁鍒欎細瀵艰嚧璋冪敤MV_CC_InputOneFrame鎺ュ彛閿欒銆�
+
+ # @~english
+ # @brief Start Record
+ # @param handle [IN] Device handle
+ # @param pstRecordParam [IN] Record param structure
+ # @return Success, return MV_OK. Failure, return error code
+ # The maximum supported width # height of this interface is 8000 # 8000, otherwise it will result in calling MV_ CC_ InputOneFrame interface error.
+ def MV_CC_StartRecord(self, stRecordParam):
+ MvCamCtrldll.MV_CC_StartRecord.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_StartRecord.restype = c_uint
+ return MvCamCtrldll.MV_CC_StartRecord(self.handle, byref(stRecordParam))
+
+ ##
+ # @~chinese
+ # @brief 杈撳叆褰曞儚鏁版嵁
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param pstInputFrameInfo [IN] 褰曞儚鏁版嵁缁撴瀯浣�
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+
+ # @~english
+ # @brief Input RAW data to Record
+ # @param handle [IN] Device handle
+ # @param pstInputFrameInfo [IN] Record data structure
+ # @return Success, return MV_OK. Failure, return error code
+ def MV_CC_InputOneFrame(self, stInputFrameInfo):
+ MvCamCtrldll.MV_CC_InputOneFrame.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_InputOneFrame.restype = c_uint
+ return MvCamCtrldll.MV_CC_InputOneFrame(self.handle, byref(stInputFrameInfo))
+
+ ##
+ # @~chinese
+ # @brief 鍋滄褰曞儚
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+
+ # @~english
+ # @brief Stop Record
+ # @param handle [IN] Device handle
+ # @return Success, return MV_OK. Failure, return error code
+ def MV_CC_StopRecord(self):
+ MvCamCtrldll.MV_CC_StopRecord.argtype = (c_void_p)
+ MvCamCtrldll.MV_CC_StopRecord.restype = c_uint
+ return MvCamCtrldll.MV_CC_StopRecord(self.handle)
+
+
+ ##
+ # @~chinese
+ # @brief 閲嶆瀯鍥惧儚(鐢ㄤ簬鍒嗘椂鏇濆厜鍔熻兘)
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param pstReconstructParam [IN][OUT] 閲嶆瀯鍥惧儚鍙傛暟
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛屽け璐ワ紝杩斿洖閿欒鐮併��
+ # @remarks 鍥惧儚鍒嗗壊鏀寔浠绘剰鍍忕礌鏍煎紡锛屽浘鍍忓垎鍓插簲涓庣嚎闃电浉鏈虹殑鈥淢ultiLightControl鈥濊妭鐐规惌閰嶄娇鐢紝璇ヨ妭鐐瑰彲璁剧疆澶氫釜涓嶅悓鐨勬洕鍏夊�硷紝濡侻ultiLightControl=2,
+ # 鐩告満浼氬皢涓や釜涓嶅悓鏇濆厜鍊兼墍瀵瑰簲鐨勪袱寮犲浘鍍忎氦鍙犲悎骞朵负涓�寮犲浘鍍�(瀹為檯楂樺害涓轰袱寮犲浘鍍忕殑楂樺害)鍙戦�佺粰涓婂眰搴旂敤绋嬪簭锛�
+ # 璋冪敤璇ユ帴鍙e苟浼犲叆鍒嗘椂鏇濆厜鍊糿ExposureNum涓�2锛屽彲灏嗙浉鏈哄彂閫佺殑涓�寮犲浘鍍忓垎鍓蹭负2寮犲浘鍍忥紝杩欎袱寮犲浘鍍忓垎鍒搴斾竴涓洕鍏夊�笺��
+ # 鑻ヤ娇鐢ㄦ櫘閫氱浉鏈烘垨鏈墦寮�绾块樀鐩告満鐨勨�淢ultiLightControl鈥濊妭鐐癸紝鍒欏浘鍍忓垎鍓叉棤鎰忎箟锛屽彧鏄皢鍥惧儚鎸夎鍒嗗壊涓�2锛�3锛�4寮犲浘鍍忥紝
+ # 姣忓紶鍥惧儚鐨勯珮搴﹀彉涓哄師鍥惧儚鐨�1/2锛�1/3锛�1/4(鐢眓ExposureNum鍐冲畾)銆�
+
+ # @~english
+ # @brief Reconstruct Image(For time-division exposure function)
+ # @param handle [IN] Device handle
+ # @param pstReconstructParam [IN][OUT] Reconstruct image parameters
+ # @return Success, return MV_OK, Failure, return error code.
+ # @remarks Image segmentation supports any pixel format. Image segmentation should be used with the "MultiLightControl" node of the linear array camera. This node can set multiple different exposure values, such as MultiLightControl=2,
+ # The camera will overlap and merge two images corresponding to two different exposure values into one image (the actual height is the height of the two images) and send it to the upper application.
+ # Call the interface and pass in nExposureNum is two. One image sent by the camera can be divided into two images, each of which corresponds to an exposure value.
+ # If an ordinary camera is used or the "MultiLightControl" node of the linear array camera is not turned on, the image segmentation is meaningless, but the image is divided into 2, 3, and 4 images by line.
+ # The height of each image becomes 1/2, 1/3, 1/4 of the original image (determined by nExposureNum).
+ def MV_CC_ReconstructImage(self, stReconstructParam):
+ MvCamCtrldll.MV_CC_ReconstructImage.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_ReconstructImage.restype = c_uint
+ return MvCamCtrldll.MV_CC_ReconstructImage(self.handle, byref(stReconstructParam))
+ ## @}
+
+
+
+ ## @addtogroup ch: 涓插彛閫氫俊鐨勮澶囨帴鍙� | en: Interface for serial communication devices
+ ## @{
+
+
+ ##
+ # @~chinese
+ # @brief 鎵撳紑涓插彛
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 姝ゆ帴鍙i�傜敤浜庢敮鎸佷覆鍙i�氫俊鐨勭浉鏈�
+
+ # @~english
+ # @brief Open serial port.
+ # @param handle [IN] Device handle
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This interface is compatible with cameras supporting serial communication
+ def MV_CC_SerialPort_Open(self):
+ MvCamCtrldll.MV_CC_SerialPort_Open.argtype = (c_void_p)
+ MvCamCtrldll.MV_CC_SerialPort_Open.restype = c_uint
+ return MvCamCtrldll.MV_CC_SerialPort_Open(self.handle)
+
+
+ ##
+ # @~chinese
+ # @brief 鍚戜覆鍙e啓鏁版嵁锛屼竴娆℃渶澶у啓512瀛楄妭鐨勬暟鎹�
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param pBuffer [IN] 鏁版嵁
+ # @param nLength [IN] 鏁版嵁闀垮害
+ # @param pnWriteLen [OUT] 瀹為檯鍐欐垚鍔熺殑鏁版嵁闀垮害
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+ # @remarks 鎺ュ彛涓洪樆濉炴ā寮忥紝鏁版嵁鍏ㄩ儴鍙戦�佸畬鎴愭垨鑰呭彂閫佸け璐ユ椂杩斿洖
+
+ # @~english
+ # @brief Writes data to serial port, maximum 512 bytes
+ # @param handle [IN] Device handle
+ # @param pBuffer [IN] data
+ # @param nLength [IN] data length
+ # @param pnWriteLen [OUT] written data length
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks Blocking-mode interface: returns after complete transmission or upon failure
+ def MV_CC_SerialPort_Write(self, pBuffer, nLength, pnWriteLen):
+ MvCamCtrldll.MV_CC_SerialPort_Write.argtype = (c_void_p, c_void_p, c_uint, c_void_p)
+ MvCamCtrldll.MV_CC_SerialPort_Write.restype = c_uint
+ return MvCamCtrldll.MV_CC_SerialPort_Write(self.handle, pBuffer, nLength, byref(pnWriteLen))
+
+ ##
+ # @~chinese
+ # @brief 璇讳覆鍙f暟鎹�
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @param pBuffer [IN] 鏁版嵁
+ # @param nLength [IN] 鏁版嵁闀垮害
+ # @param pnReadLen [IN] 瀹為檯璇诲埌鐨勬暟鎹暱搴�
+ # @param nMsec [IN] 瓒呮椂鏃堕棿锛屽崟浣嶏細ms
+ # @return 鎴愬姛,杩斿洖MV_OK,澶辫触,杩斿洖閿欒鐮�
+ # @remarks 鎺ュ彛涓洪樆濉炴ā寮忥紝褰撴湁鏀跺埌鏁版嵁銆佸埌杈捐秴鏃舵椂闂淬�佸嚭鐜板紓甯告椂锛岀珛鍗宠繑鍥�
+
+ # @~english
+ # @brief Read Memory
+ # @param handle [IN] Device Handle/Frame grabber handle
+ # @param pBuffer [IN] data
+ # @param nLength [IN] data length
+ # @param pnReadLen [IN] Length of Data Read
+ # @param nMsec [IN] timeout interval(ms)
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks The interface operates in blocking mode and immediately returns when data is received, a timeout occurs, or an exception is encountered.
+ def MV_CC_SerialPort_Read(self, pBuffer, nLength, pnReadLen, nMsec):
+ MvCamCtrldll.MV_CC_SerialPort_Read.argtype = (c_void_p, c_void_p, c_uint, c_void_p, c_uint)
+ MvCamCtrldll.MV_CC_SerialPort_Read.restype = c_uint
+ return MvCamCtrldll.MV_CC_SerialPort_Read(self.handle, pBuffer, nLength, byref(pnReadLen), nMsec)
+
+
+ ##
+ # @~chinese
+ # @brief 娓呯┖宸叉帴鏀剁殑涓插彛鏁版嵁
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 姝ゆ帴鍙i�傜敤浜庢敮鎸佷覆鍙i�氫俊鐨勭浉鏈�
+
+ # @~english
+ # @brief Clear all received serial port data.
+ # @param handle [IN] Device handle
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This interface is compatible with cameras supporting serial communication
+ def MV_CC_SerialPort_ClearBuffer(self):
+ MvCamCtrldll.MV_CC_SerialPort_ClearBuffer.argtype = c_void_p
+ MvCamCtrldll.MV_CC_SerialPort_ClearBuffer.restype = c_uint
+ return MvCamCtrldll.MV_CC_SerialPort_ClearBuffer(self.handle)
+
+
+ ##
+ # @~chinese
+ # @brief 鍏抽棴涓插彛
+ # @param handle [IN] 璁惧鍙ユ焺
+ # @return 鎴愬姛锛岃繑鍥濵V_OK锛涢敊璇紝杩斿洖閿欒鐮�
+ # @remarks 姝ゆ帴鍙i�傜敤浜庢敮鎸佷覆鍙i�氫俊鐨勭浉鏈�
+
+ # @~english
+ # @brief Close serial port
+ # @param handle [IN] Device handle
+ # @return Success, return MV_OK. Failure, return error code
+ # @remarks This interface is compatible with cameras supporting serial communication
+ def MV_CC_SerialPort_Close(self):
+ MvCamCtrldll.MV_CC_SerialPort_Close.argtype = c_void_p
+ MvCamCtrldll.MV_CC_SerialPort_Close.restype = c_uint
+ return MvCamCtrldll.MV_CC_SerialPort_Close(self.handle)
+ ## @}
+
+
+
+ '''
+ 1. 鏆備笉鎻愪緵澶栭儴娉ㄥ唽缂撳瓨鐩稿叧API
+ 2. Part ch: 涓嬮潰涓轰笉鎺ㄨ崘浣跨敤鐨凙PI | en: Below are the APIs that are not recommended for use
+ '''
+
+ # ch:鑾峰彇鏀寔鐨勪紶杈撳眰 | en:Get supported Transport Layer
+ @staticmethod
+ def MV_CC_EnumerateTls():
+ MvCamCtrldll.MV_CC_EnumerateTls.restype = c_uint
+ # C鍘熷瀷锛歩nt __stdcall MV_CC_EnumerateTls();
+ return MvCamCtrldll.MV_CC_EnumerateTls()
+
+
+ # ch: 璁剧疆SDK鏃ュ織璺緞 | en: Set SDK log path
+ def MV_CC_SetSDKLogPath(self, SDKLogPath):
+ MvCamCtrldll.MV_CC_SetSDKLogPath.argtype = c_void_p
+ MvCamCtrldll.MV_CC_SetSDKLogPath.restype = c_uint
+ # C鍘熷瀷:int MV_CC_SetSDKLogPath(IN const char * strSDKLogPath);
+ return MvCamCtrldll.MV_CC_SetSDKLogPath(SDKLogPath.encode('ascii'))
+
+
+ def MV_CC_GetIntValue(self, strKey, stIntValue):
+ MvCamCtrldll.MV_CC_GetIntValue.argtype = (c_void_p, c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_GetIntValue.restype = c_uint
+ # C鍘熷瀷:int MV_CC_GetIntValue(void* handle,char* strKey,MVCC_INTVALUE *pIntValue)
+ return MvCamCtrldll.MV_CC_GetIntValue(self.handle, strKey.encode('ascii'), byref(stIntValue))
+
+ # ch:璁剧疆Integer鍨嬪睘鎬у�� | en:Set Integer value
+ def MV_CC_SetIntValue(self, strKey, nValue):
+ MvCamCtrldll.MV_CC_SetIntValue.argtype = (c_void_p, c_void_p, c_uint32)
+ MvCamCtrldll.MV_CC_SetIntValue.restype = c_uint
+ # C鍘熷瀷:int MV_CC_SetIntValue(void* handle, char* strKey, unsigned int nValue)
+ return MvCamCtrldll.MV_CC_SetIntValue(self.handle, strKey.encode('ascii'), c_uint32(nValue))
+
+
+ # ch:鍒涘缓鍙ユ焺锛堜笉鐢熸垚鏃ュ織锛� | en:Create Device Handle without log
+ def MV_CC_CreateHandleWithoutLog(self, stDevInfo):
+ MvCamCtrldll.MV_CC_CreateHandleWithoutLog.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_CreateHandleWithoutLog.restype = c_uint
+ # C鍘熷瀷:int MV_CC_CreateHandleWithoutLog(void ** handle, MV_CC_DEVICE_INFO* pstDevInfo)
+ return MvCamCtrldll.MV_CC_CreateHandleWithoutLog(byref(self.handle), byref(stDevInfo))
+
+
+ # ch:娉ㄥ唽鍙栨祦鍥炶皟 | en:Register the image callback function
+ def MV_CC_RegisterImageCallBackForRGB(self, CallBackFun, pUser):
+ MvCamCtrldll.MV_CC_RegisterImageCallBackForRGB.argtype = (c_void_p, c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_RegisterImageCallBackForRGB.restype = c_uint
+ # C鍘熷瀷:int MV_CC_RegisterImageCallBackForRGB(void* handle,
+ # void(* cbOutput)(unsigned char * pData, MV_FRAME_OUT_INFO_EX* pFrameInfo, void* pUser),
+ # void* pUser);
+ return MvCamCtrldll.MV_CC_RegisterImageCallBackForRGB(self.handle, CallBackFun, pUser)
+
+ # ch:娉ㄥ唽鍙栨祦鍥炶皟 | en:Register the image callback function
+ def MV_CC_RegisterImageCallBackForBGR(self, CallBackFun, pUser):
+ MvCamCtrldll.MV_CC_RegisterImageCallBackForBGR.argtype = (c_void_p, c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_RegisterImageCallBackForBGR.restype = c_uint
+ # C鍘熷瀷:int MV_CC_RegisterImageCallBackForBGR(void* handle,
+ # void(* cbOutput)(unsigned char * pData,MV_FRAME_OUT_INFO_EX* pFrameInfo, void* pUser),
+ # void* pUser);
+ return MvCamCtrldll.MV_CC_RegisterImageCallBackForBGR(self.handle, CallBackFun, pUser)
+
+ # ch:鑾峰彇涓�甯GB鏁版嵁锛屾鍑芥暟涓烘煡璇㈠紡鑾峰彇锛屾瘡娆¤皟鐢ㄦ煡璇㈠唴閮ㄧ紦瀛樻湁鏃犳暟鎹紝鏈夋暟鎹垯鑾峰彇鏁版嵁锛屾棤鏁版嵁杩斿洖閿欒鐮�
+ # en:Get one frame of RGB data, this function is using query to get data query whether the internal cache has data,
+ # get data if there has, return error code if no data
+ def MV_CC_GetImageForRGB(self, pData, nDataSize, stFrameInfo, nMsec):
+ MvCamCtrldll.MV_CC_GetImageForRGB.argtype = (c_void_p, c_void_p, c_uint, c_void_p, c_uint)
+ MvCamCtrldll.MV_CC_GetImageForRGB.restype = c_uint
+ # C鍘熷瀷:int MV_CC_GetImageForRGB(IN void* handle, IN OUT unsigned char * pData , IN unsigned int nDataSize,
+ # IN OUT MV_FRAME_OUT_INFO_EX* pstFrameInfo, int nMsec);
+ return MvCamCtrldll.MV_CC_GetImageForRGB(self.handle, pData, nDataSize, byref(stFrameInfo), nMsec)
+
+ # ch:鑾峰彇涓�甯GR鏁版嵁锛屾鍑芥暟涓烘煡璇㈠紡鑾峰彇锛屾瘡娆¤皟鐢ㄦ煡璇㈠唴閮ㄧ紦瀛樻湁鏃犳暟鎹紝鏈夋暟鎹垯鑾峰彇鏁版嵁锛屾棤鏁版嵁杩斿洖閿欒鐮�
+ # en:Get one frame of BGR data, this function is using query to get data query whether the internal cache has data,
+ # get data if there has, return error code if no data
+ def MV_CC_GetImageForBGR(self, pData, nDataSize, stFrameInfo, nMsec):
+ MvCamCtrldll.MV_CC_GetImageForBGR.argtype = (c_void_p, c_void_p, c_uint, c_void_p, c_uint)
+ MvCamCtrldll.MV_CC_GetImageForBGR.restype = c_uint
+ # C鍘熷瀷:int MV_CC_GetImageForBGR(IN void* handle, IN OUT unsigned char * pData , IN unsigned int nDataSize,
+ # IN OUT MV_FRAME_OUT_INFO_EX* pstFrameInfo, int nMsec);
+ return MvCamCtrldll.MV_CC_GetImageForBGR(self.handle, pData, nDataSize, byref(stFrameInfo), nMsec)
+
+ # ch:鏄剧ず涓�甯у浘鍍�
+ # en:Display one frame image,the maximum resolution supported is 16384 * 163840
+ def MV_CC_DisplayOneFrame(self, stDisplayInfo):
+ MvCamCtrldll.MV_CC_DisplayOneFrame.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_DisplayOneFrame.restype = c_uint
+ # C鍘熷瀷:int MV_CC_DisplayOneFrame(IN void* handle, IN MV_DISPLAY_FRAME_INFO* pstDisplayInfo);
+ return MvCamCtrldll.MV_CC_DisplayOneFrame(self.handle, byref(stDisplayInfo))
+
+ # ch:淇濆瓨鍥剧墖锛屾敮鎸丅mp鍜孞peg | en:Save image, support Bmp and Jpeg.
+ def MV_CC_SaveImageEx2(self, stSaveParam):
+ MvCamCtrldll.MV_CC_SaveImageEx2.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_SaveImageEx2.restype = c_uint
+ # C鍘熷瀷:int MV_CC_SaveImageEx2(void* handle, MV_SAVE_IMAGE_PARAM_EX* pSaveParam)
+ return MvCamCtrldll.MV_CC_SaveImageEx2(self.handle, byref(stSaveParam))
+
+
+ # ch:淇濆瓨鍥惧儚鍒版枃浠� | en:Save the image file
+ def MV_CC_SaveImageToFile(self, stSaveFileParam):
+ MvCamCtrldll.MV_CC_SaveImageToFile.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_SaveImageToFile.restype = c_uint
+ # C鍘熷瀷:int MV_CC_SaveImageToFile(IN void* handle, MV_SAVE_IMG_TO_FILE_PARAM* pstSaveFileParam);
+ return MvCamCtrldll.MV_CC_SaveImageToFile(self.handle, byref(stSaveFileParam))
+
+ # ch:淇濆瓨3D鐐逛簯鏁版嵁锛屾敮鎸丳LY銆丆SV鍜孫BJ涓夌鏍煎紡 | en:Save 3D point data, support PLY銆丆SV and OBJ
+ def MV_CC_SavePointCloudData(self, stPointDataParam):
+ MvCamCtrldll.MV_CC_SavePointCloudData.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_SavePointCloudData.restype = c_uint
+ # C鍘熷瀷:int MV_CC_SavePointCloudData(IN void* handle, MV_SAVE_POINT_CLOUD_PARAM* pstPointDataParam);
+ return MvCamCtrldll.MV_CC_SavePointCloudData(self.handle, byref(stPointDataParam))
+
+
+ # ch:鍍忕礌鏍煎紡杞崲 | en:Pixel format conversion
+ def MV_CC_ConvertPixelType(self, stConvertParam):
+ MvCamCtrldll.MV_CC_ConvertPixelType.argtype = (c_void_p, c_void_p)
+ MvCamCtrldll.MV_CC_ConvertPixelType.restype = c_uint
+ # C鍘熷瀷:int MV_CC_ConvertPixelType(void* handle, MV_CC_PIXEL_CONVERT_PARAM* pstCvtParam)
+ return MvCamCtrldll.MV_CC_ConvertPixelType(self.handle, byref(stConvertParam))
+
+ # ch:鎵撳紑鑾峰彇鎴栬缃浉鏈哄弬鏁扮殑GUI鐣岄潰 | en: Open the GUI interface for getting or setting camera parameters
+ def MV_CC_OpenParamsGUI(self):
+ MvCamCtrldll.MV_CC_OpenParamsGUI.argtype = (c_void_p)
+ MvCamCtrldll.MV_CC_OpenParamsGUI.restype = c_uint
+ # C鍘熷瀷: __stdcall MV_CC_OpenParamsGUI(IN void* handle);
+ return MvCamCtrldll.MV_CC_OpenParamsGUI(self.handle)
+
+ # ch: 娉ㄥ唽娴佸紓甯告秷鎭洖璋冿紝鍦ㄦ墦寮�璁惧涔嬪悗璋冪敤锛堝彧鏀寔U3V鐩告満锛屼笉鏀寔GenTL璁惧锛� | en:Register exception stream callBack, call after open device (only support U3V Camera, don't support GenTL Device)
+ def MV_USB_RegisterStreamExceptionCallBack(self, CallBackFun, pUser):
+ MvCamCtrldll.MV_USB_RegisterStreamExceptionCallBack.argtype = (c_void_p, c_void_p, c_void_p)
+ MvCamCtrldll.MV_USB_RegisterStreamExceptionCallBack.restype = c_uint
+ return MvCamCtrldll.MV_USB_RegisterStreamExceptionCallBack(self.handle, CallBackFun, pUser)
+
--
Gitblit v1.9.1