2395 lines
89 KiB
Python
2395 lines
89 KiB
Python
#coding=utf-8
|
||
import platform
|
||
from ctypes import *
|
||
from threading import local
|
||
|
||
# 回调函数类型
|
||
CALLBACK_FUNC_TYPE = None
|
||
|
||
# SDK动态库
|
||
_sdk = None
|
||
|
||
def _Init():
|
||
global _sdk
|
||
global CALLBACK_FUNC_TYPE
|
||
|
||
is_win = (platform.system() == "Windows")
|
||
is_x86 = (platform.architecture()[0] == '32bit')
|
||
|
||
if is_win:
|
||
_sdk = windll.MVCAMSDK if is_x86 else windll.MVCAMSDK_X64
|
||
CALLBACK_FUNC_TYPE = WINFUNCTYPE
|
||
else:
|
||
_sdk = cdll.LoadLibrary("libMVSDK.so")
|
||
CALLBACK_FUNC_TYPE = CFUNCTYPE
|
||
|
||
_Init()
|
||
|
||
#-------------------------------------------类型定义--------------------------------------------------
|
||
|
||
# 状态码定义
|
||
CAMERA_STATUS_SUCCESS = 0 # 操作成功
|
||
CAMERA_STATUS_FAILED = -1 # 操作失败
|
||
CAMERA_STATUS_INTERNAL_ERROR = -2 # 内部错误
|
||
CAMERA_STATUS_UNKNOW = -3 # 未知错误
|
||
CAMERA_STATUS_NOT_SUPPORTED = -4 # 不支持该功能
|
||
CAMERA_STATUS_NOT_INITIALIZED = -5 # 初始化未完成
|
||
CAMERA_STATUS_PARAMETER_INVALID = -6 # 参数无效
|
||
CAMERA_STATUS_PARAMETER_OUT_OF_BOUND = -7 # 参数越界
|
||
CAMERA_STATUS_UNENABLED = -8 # 未使能
|
||
CAMERA_STATUS_USER_CANCEL = -9 # 用户手动取消了,比如roi面板点击取消,返回
|
||
CAMERA_STATUS_PATH_NOT_FOUND = -10 # 注册表中没有找到对应的路径
|
||
CAMERA_STATUS_SIZE_DISMATCH = -11 # 获得图像数据长度和定义的尺寸不匹配
|
||
CAMERA_STATUS_TIME_OUT = -12 # 超时错误
|
||
CAMERA_STATUS_IO_ERROR = -13 # 硬件IO错误
|
||
CAMERA_STATUS_COMM_ERROR = -14 # 通讯错误
|
||
CAMERA_STATUS_BUS_ERROR = -15 # 总线错误
|
||
CAMERA_STATUS_NO_DEVICE_FOUND = -16 # 没有发现设备
|
||
CAMERA_STATUS_NO_LOGIC_DEVICE_FOUND = -17 # 未找到逻辑设备
|
||
CAMERA_STATUS_DEVICE_IS_OPENED = -18 # 设备已经打开
|
||
CAMERA_STATUS_DEVICE_IS_CLOSED = -19 # 设备已经关闭
|
||
CAMERA_STATUS_DEVICE_VEDIO_CLOSED = -20 # 没有打开设备视频,调用录像相关的函数时,如果相机视频没有打开,则回返回该错误。
|
||
CAMERA_STATUS_NO_MEMORY = -21 # 没有足够系统内存
|
||
CAMERA_STATUS_FILE_CREATE_FAILED = -22 # 创建文件失败
|
||
CAMERA_STATUS_FILE_INVALID = -23 # 文件格式无效
|
||
CAMERA_STATUS_WRITE_PROTECTED = -24 # 写保护,不可写
|
||
CAMERA_STATUS_GRAB_FAILED = -25 # 数据采集失败
|
||
CAMERA_STATUS_LOST_DATA = -26 # 数据丢失,不完整
|
||
CAMERA_STATUS_EOF_ERROR = -27 # 未接收到帧结束符
|
||
CAMERA_STATUS_BUSY = -28 # 正忙(上一次操作还在进行中),此次操作不能进行
|
||
CAMERA_STATUS_WAIT = -29 # 需要等待(进行操作的条件不成立),可以再次尝试
|
||
CAMERA_STATUS_IN_PROCESS = -30 # 正在进行,已经被操作过
|
||
CAMERA_STATUS_IIC_ERROR = -31 # IIC传输错误
|
||
CAMERA_STATUS_SPI_ERROR = -32 # SPI传输错误
|
||
CAMERA_STATUS_USB_CONTROL_ERROR = -33 # USB控制传输错误
|
||
CAMERA_STATUS_USB_BULK_ERROR = -34 # USB BULK传输错误
|
||
CAMERA_STATUS_SOCKET_INIT_ERROR = -35 # 网络传输套件初始化失败
|
||
CAMERA_STATUS_GIGE_FILTER_INIT_ERROR = -36 # 网络相机内核过滤驱动初始化失败,请检查是否正确安装了驱动,或者重新安装。
|
||
CAMERA_STATUS_NET_SEND_ERROR = -37 # 网络数据发送错误
|
||
CAMERA_STATUS_DEVICE_LOST = -38 # 与网络相机失去连接,心跳检测超时
|
||
CAMERA_STATUS_DATA_RECV_LESS = -39 # 接收到的字节数比请求的少
|
||
CAMERA_STATUS_FUNCTION_LOAD_FAILED = -40 # 从文件中加载程序失败
|
||
CAMERA_STATUS_CRITICAL_FILE_LOST = -41 # 程序运行所必须的文件丢失。
|
||
CAMERA_STATUS_SENSOR_ID_DISMATCH = -42 # 固件和程序不匹配,原因是下载了错误的固件。
|
||
CAMERA_STATUS_OUT_OF_RANGE = -43 # 参数超出有效范围。
|
||
CAMERA_STATUS_REGISTRY_ERROR = -44 # 安装程序注册错误。请重新安装程序,或者运行安装目录Setup/Installer.exe
|
||
CAMERA_STATUS_ACCESS_DENY = -45 # 禁止访问。指定相机已经被其他程序占用时,再申请访问该相机,会返回该状态。(一个相机不能被多个程序同时访问)
|
||
#AIA的标准兼容的错误码
|
||
CAMERA_AIA_PACKET_RESEND = 0x0100 #该帧需要重传
|
||
CAMERA_AIA_NOT_IMPLEMENTED = 0x8001 #设备不支持的命令
|
||
CAMERA_AIA_INVALID_PARAMETER = 0x8002 #命令参数非法
|
||
CAMERA_AIA_INVALID_ADDRESS = 0x8003 #不可访问的地址
|
||
CAMERA_AIA_WRITE_PROTECT = 0x8004 #访问的对象不可写
|
||
CAMERA_AIA_BAD_ALIGNMENT = 0x8005 #访问的地址没有按照要求对齐
|
||
CAMERA_AIA_ACCESS_DENIED = 0x8006 #没有访问权限
|
||
CAMERA_AIA_BUSY = 0x8007 #命令正在处理中
|
||
CAMERA_AIA_DEPRECATED = 0x8008 #0x8008-0x0800B 0x800F 该指令已经废弃
|
||
CAMERA_AIA_PACKET_UNAVAILABLE = 0x800C #包无效
|
||
CAMERA_AIA_DATA_OVERRUN = 0x800D #数据溢出,通常是收到的数据比需要的多
|
||
CAMERA_AIA_INVALID_HEADER = 0x800E #数据包头部中某些区域与协议不匹配
|
||
CAMERA_AIA_PACKET_NOT_YET_AVAILABLE = 0x8010 #图像分包数据还未准备好,多用于触发模式,应用程序访问超时
|
||
CAMERA_AIA_PACKET_AND_PREV_REMOVED_FROM_MEMORY = 0x8011 #需要访问的分包已经不存在。多用于重传时数据已经不在缓冲区中
|
||
CAMERA_AIA_PACKET_REMOVED_FROM_MEMORY = 0x8012 #CAMERA_AIA_PACKET_AND_PREV_REMOVED_FROM_MEMORY
|
||
CAMERA_AIA_NO_REF_TIME = 0x0813 #没有参考时钟源。多用于时间同步的命令执行时
|
||
CAMERA_AIA_PACKET_TEMPORARILY_UNAVAILABLE = 0x0814 #由于信道带宽问题,当前分包暂时不可用,需稍后进行访问
|
||
CAMERA_AIA_OVERFLOW = 0x0815 #设备端数据溢出,通常是队列已满
|
||
CAMERA_AIA_ACTION_LATE = 0x0816 #命令执行已经超过有效的指定时间
|
||
CAMERA_AIA_ERROR = 0x8FFF #错误
|
||
|
||
# 图像格式定义
|
||
CAMERA_MEDIA_TYPE_MONO = 0x01000000
|
||
CAMERA_MEDIA_TYPE_RGB = 0x02000000
|
||
CAMERA_MEDIA_TYPE_COLOR = 0x02000000
|
||
CAMERA_MEDIA_TYPE_OCCUPY1BIT = 0x00010000
|
||
CAMERA_MEDIA_TYPE_OCCUPY2BIT = 0x00020000
|
||
CAMERA_MEDIA_TYPE_OCCUPY4BIT = 0x00040000
|
||
CAMERA_MEDIA_TYPE_OCCUPY8BIT = 0x00080000
|
||
CAMERA_MEDIA_TYPE_OCCUPY10BIT = 0x000A0000
|
||
CAMERA_MEDIA_TYPE_OCCUPY12BIT = 0x000C0000
|
||
CAMERA_MEDIA_TYPE_OCCUPY16BIT = 0x00100000
|
||
CAMERA_MEDIA_TYPE_OCCUPY24BIT = 0x00180000
|
||
CAMERA_MEDIA_TYPE_OCCUPY32BIT = 0x00200000
|
||
CAMERA_MEDIA_TYPE_OCCUPY36BIT = 0x00240000
|
||
CAMERA_MEDIA_TYPE_OCCUPY48BIT = 0x00300000
|
||
CAMERA_MEDIA_TYPE_EFFECTIVE_PIXEL_SIZE_MASK = 0x00FF0000
|
||
CAMERA_MEDIA_TYPE_EFFECTIVE_PIXEL_SIZE_SHIFT = 16
|
||
CAMERA_MEDIA_TYPE_ID_MASK = 0x0000FFFF
|
||
CAMERA_MEDIA_TYPE_COUNT = 0x46
|
||
|
||
#mono
|
||
CAMERA_MEDIA_TYPE_MONO1P = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY1BIT | 0x0037)
|
||
CAMERA_MEDIA_TYPE_MONO2P = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY2BIT | 0x0038)
|
||
CAMERA_MEDIA_TYPE_MONO4P = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY4BIT | 0x0039)
|
||
CAMERA_MEDIA_TYPE_MONO8 = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY8BIT | 0x0001)
|
||
CAMERA_MEDIA_TYPE_MONO8S = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY8BIT | 0x0002)
|
||
CAMERA_MEDIA_TYPE_MONO10 = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x0003)
|
||
CAMERA_MEDIA_TYPE_MONO10_PACKED = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY12BIT | 0x0004)
|
||
CAMERA_MEDIA_TYPE_MONO12 = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x0005)
|
||
CAMERA_MEDIA_TYPE_MONO12_PACKED = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY12BIT | 0x0006)
|
||
CAMERA_MEDIA_TYPE_MONO14 = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x0025)
|
||
CAMERA_MEDIA_TYPE_MONO16 = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x0007)
|
||
|
||
# Bayer
|
||
CAMERA_MEDIA_TYPE_BAYGR8 = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY8BIT | 0x0008)
|
||
CAMERA_MEDIA_TYPE_BAYRG8 = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY8BIT | 0x0009)
|
||
CAMERA_MEDIA_TYPE_BAYGB8 = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY8BIT | 0x000A)
|
||
CAMERA_MEDIA_TYPE_BAYBG8 = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY8BIT | 0x000B)
|
||
|
||
CAMERA_MEDIA_TYPE_BAYGR10_MIPI = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY10BIT | 0x0026)
|
||
CAMERA_MEDIA_TYPE_BAYRG10_MIPI = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY10BIT | 0x0027)
|
||
CAMERA_MEDIA_TYPE_BAYGB10_MIPI = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY10BIT | 0x0028)
|
||
CAMERA_MEDIA_TYPE_BAYBG10_MIPI = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY10BIT | 0x0029)
|
||
|
||
CAMERA_MEDIA_TYPE_BAYGR10 = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x000C)
|
||
CAMERA_MEDIA_TYPE_BAYRG10 = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x000D)
|
||
CAMERA_MEDIA_TYPE_BAYGB10 = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x000E)
|
||
CAMERA_MEDIA_TYPE_BAYBG10 = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x000F)
|
||
|
||
CAMERA_MEDIA_TYPE_BAYGR12 = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x0010)
|
||
CAMERA_MEDIA_TYPE_BAYRG12 = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x0011)
|
||
CAMERA_MEDIA_TYPE_BAYGB12 = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x0012)
|
||
CAMERA_MEDIA_TYPE_BAYBG12 = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x0013)
|
||
|
||
CAMERA_MEDIA_TYPE_BAYGR10_PACKED = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY12BIT | 0x0026)
|
||
CAMERA_MEDIA_TYPE_BAYRG10_PACKED = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY12BIT | 0x0027)
|
||
CAMERA_MEDIA_TYPE_BAYGB10_PACKED = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY12BIT | 0x0028)
|
||
CAMERA_MEDIA_TYPE_BAYBG10_PACKED = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY12BIT | 0x0029)
|
||
|
||
CAMERA_MEDIA_TYPE_BAYGR12_PACKED = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY12BIT | 0x002A)
|
||
CAMERA_MEDIA_TYPE_BAYRG12_PACKED = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY12BIT | 0x002B)
|
||
CAMERA_MEDIA_TYPE_BAYGB12_PACKED = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY12BIT | 0x002C)
|
||
CAMERA_MEDIA_TYPE_BAYBG12_PACKED = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY12BIT | 0x002D)
|
||
|
||
CAMERA_MEDIA_TYPE_BAYGR16 = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x002E)
|
||
CAMERA_MEDIA_TYPE_BAYRG16 = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x002F)
|
||
CAMERA_MEDIA_TYPE_BAYGB16 = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x0030)
|
||
CAMERA_MEDIA_TYPE_BAYBG16 = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x0031)
|
||
|
||
# RGB
|
||
CAMERA_MEDIA_TYPE_RGB8 = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY24BIT | 0x0014)
|
||
CAMERA_MEDIA_TYPE_BGR8 = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY24BIT | 0x0015)
|
||
CAMERA_MEDIA_TYPE_RGBA8 = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY32BIT | 0x0016)
|
||
CAMERA_MEDIA_TYPE_BGRA8 = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY32BIT | 0x0017)
|
||
CAMERA_MEDIA_TYPE_RGB10 = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY48BIT | 0x0018)
|
||
CAMERA_MEDIA_TYPE_BGR10 = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY48BIT | 0x0019)
|
||
CAMERA_MEDIA_TYPE_RGB12 = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY48BIT | 0x001A)
|
||
CAMERA_MEDIA_TYPE_BGR12 = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY48BIT | 0x001B)
|
||
CAMERA_MEDIA_TYPE_RGB16 = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY48BIT | 0x0033)
|
||
CAMERA_MEDIA_TYPE_RGB10V1_PACKED = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY32BIT | 0x001C)
|
||
CAMERA_MEDIA_TYPE_RGB10P32 = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY32BIT | 0x001D)
|
||
CAMERA_MEDIA_TYPE_RGB12V1_PACKED = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY36BIT | 0X0034)
|
||
CAMERA_MEDIA_TYPE_RGB565P = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x0035)
|
||
CAMERA_MEDIA_TYPE_BGR565P = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0X0036)
|
||
|
||
# YUV and YCbCr
|
||
CAMERA_MEDIA_TYPE_YUV411_8_UYYVYY = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY12BIT | 0x001E)
|
||
CAMERA_MEDIA_TYPE_YUV422_8_UYVY = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x001F)
|
||
CAMERA_MEDIA_TYPE_YUV422_8 = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x0032)
|
||
CAMERA_MEDIA_TYPE_YUV8_UYV = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY24BIT | 0x0020)
|
||
CAMERA_MEDIA_TYPE_YCBCR8_CBYCR = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY24BIT | 0x003A)
|
||
#CAMERA_MEDIA_TYPE_YCBCR422_8 : YYYYCbCrCbCr
|
||
CAMERA_MEDIA_TYPE_YCBCR422_8 = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x003B)
|
||
CAMERA_MEDIA_TYPE_YCBCR422_8_CBYCRY = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x0043)
|
||
CAMERA_MEDIA_TYPE_YCBCR411_8_CBYYCRYY = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY12BIT | 0x003C)
|
||
CAMERA_MEDIA_TYPE_YCBCR601_8_CBYCR = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY24BIT | 0x003D)
|
||
CAMERA_MEDIA_TYPE_YCBCR601_422_8 = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x003E)
|
||
CAMERA_MEDIA_TYPE_YCBCR601_422_8_CBYCRY = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x0044)
|
||
CAMERA_MEDIA_TYPE_YCBCR601_411_8_CBYYCRYY = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY12BIT | 0x003F)
|
||
CAMERA_MEDIA_TYPE_YCBCR709_8_CBYCR = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY24BIT | 0x0040)
|
||
CAMERA_MEDIA_TYPE_YCBCR709_422_8 = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x0041)
|
||
CAMERA_MEDIA_TYPE_YCBCR709_422_8_CBYCRY = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x0045)
|
||
CAMERA_MEDIA_TYPE_YCBCR709_411_8_CBYYCRYY = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY12BIT | 0x0042)
|
||
|
||
# RGB Planar
|
||
CAMERA_MEDIA_TYPE_RGB8_PLANAR = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY24BIT | 0x0021)
|
||
CAMERA_MEDIA_TYPE_RGB10_PLANAR = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY48BIT | 0x0022)
|
||
CAMERA_MEDIA_TYPE_RGB12_PLANAR = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY48BIT | 0x0023)
|
||
CAMERA_MEDIA_TYPE_RGB16_PLANAR = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY48BIT | 0x0024)
|
||
|
||
# 保存格式
|
||
FILE_JPG = 1
|
||
FILE_BMP = 2
|
||
FILE_RAW = 4
|
||
FILE_PNG = 8
|
||
FILE_BMP_8BIT = 16
|
||
FILE_PNG_8BIT = 32
|
||
FILE_RAW_16BIT = 64
|
||
|
||
# 触发信号
|
||
EXT_TRIG_LEADING_EDGE = 0
|
||
EXT_TRIG_TRAILING_EDGE = 1
|
||
EXT_TRIG_HIGH_LEVEL = 2
|
||
EXT_TRIG_LOW_LEVEL = 3
|
||
EXT_TRIG_DOUBLE_EDGE = 4
|
||
|
||
# IO模式
|
||
IOMODE_TRIG_INPUT = 0
|
||
IOMODE_STROBE_OUTPUT = 1
|
||
IOMODE_GP_INPUT = 2
|
||
IOMODE_GP_OUTPUT = 3
|
||
IOMODE_PWM_OUTPUT = 4
|
||
|
||
|
||
# 相机操作异常信息
|
||
class CameraException(Exception):
|
||
"""docstring for CameraException"""
|
||
def __init__(self, error_code):
|
||
super(CameraException, self).__init__()
|
||
self.error_code = error_code
|
||
self.message = CameraGetErrorString(error_code)
|
||
|
||
def __str__(self):
|
||
return 'error_code:{} message:{}'.format(self.error_code, self.message)
|
||
|
||
class MvStructure(Structure):
|
||
def __str__(self):
|
||
strs = []
|
||
for field in self._fields_:
|
||
name = field[0]
|
||
value = getattr(self, name)
|
||
if isinstance(value, type(b'')):
|
||
value = _string_buffer_to_str(value)
|
||
strs.append("{}:{}".format(name, value))
|
||
return '\n'.join(strs)
|
||
|
||
def __repr__(self):
|
||
return self.__str__()
|
||
|
||
def clone(self):
|
||
obj = type(self)()
|
||
memmove(byref(obj), byref(self), sizeof(self))
|
||
return obj
|
||
|
||
# 相机的设备信息,只读信息,请勿修改
|
||
class tSdkCameraDevInfo(MvStructure):
|
||
_fields_ = [("acProductSeries", c_char * 32), #产品系列
|
||
("acProductName", c_char * 32), #产品名称
|
||
("acFriendlyName", c_char * 32), #产品昵称
|
||
("acLinkName", c_char * 32), #内核符号连接名,内部使用
|
||
("acDriverVersion", c_char * 32), #驱动版本
|
||
("acSensorType", c_char * 32), #sensor类型
|
||
("acPortType", c_char * 32), #接口类型
|
||
("acSn", c_char * 32), #产品唯一序列号
|
||
("uInstance", c_uint)] #该型号相机在该电脑上的实例索引号,用于区分同型号多相机
|
||
|
||
def GetProductSeries(self):
|
||
return _string_buffer_to_str(self.acProductSeries)
|
||
def GetProductName(self):
|
||
return _string_buffer_to_str(self.acProductName)
|
||
def GetFriendlyName(self):
|
||
return _string_buffer_to_str(self.acFriendlyName)
|
||
def GetLinkName(self):
|
||
return _string_buffer_to_str(self.acLinkName)
|
||
def GetDriverVersion(self):
|
||
return _string_buffer_to_str(self.acDriverVersion)
|
||
def GetSensorType(self):
|
||
return _string_buffer_to_str(self.acSensorType)
|
||
def GetPortType(self):
|
||
return _string_buffer_to_str(self.acPortType)
|
||
def GetSn(self):
|
||
return _string_buffer_to_str(self.acSn)
|
||
|
||
# 相机的分辨率设定范围
|
||
class tSdkResolutionRange(MvStructure):
|
||
_fields_ = [("iHeightMax", c_int), #图像最大高度
|
||
("iHeightMin", c_int), #图像最小高度
|
||
("iWidthMax", c_int), #图像最大宽度
|
||
("iWidthMin", c_int), #图像最小宽度
|
||
("uSkipModeMask", c_uint), #SKIP模式掩码,为0,表示不支持SKIP 。bit0为1,表示支持SKIP 2x2 bit1为1,表示支持SKIP 3x3....
|
||
("uBinSumModeMask", c_uint), #BIN(求和)模式掩码,为0,表示不支持BIN 。bit0为1,表示支持BIN 2x2 bit1为1,表示支持BIN 3x3....
|
||
("uBinAverageModeMask", c_uint),#BIN(求均值)模式掩码,为0,表示不支持BIN 。bit0为1,表示支持BIN 2x2 bit1为1,表示支持BIN 3x3....
|
||
("uResampleMask", c_uint)] #硬件重采样的掩码
|
||
|
||
#相机的分辨率描述
|
||
class tSdkImageResolution(MvStructure):
|
||
_fields_ = [
|
||
("iIndex", c_int), # 索引号,[0,N]表示预设的分辨率(N 为预设分辨率的最大个数,一般不超过20),OXFF 表示自定义分辨率(ROI)
|
||
("acDescription", c_char * 32), # 该分辨率的描述信息。仅预设分辨率时该信息有效。自定义分辨率可忽略该信息
|
||
("uBinSumMode", c_uint), # BIN(求和)的模式,范围不能超过tSdkResolutionRange中uBinSumModeMask
|
||
("uBinAverageMode", c_uint), # BIN(求均值)的模式,范围不能超过tSdkResolutionRange中uBinAverageModeMask
|
||
("uSkipMode", c_uint), # 是否SKIP的尺寸,为0表示禁止SKIP模式,范围不能超过tSdkResolutionRange中uSkipModeMask
|
||
("uResampleMask", c_uint), # 硬件重采样的掩码
|
||
("iHOffsetFOV", c_int), # 采集视场相对于Sensor最大视场左上角的垂直偏移
|
||
("iVOffsetFOV", c_int), # 采集视场相对于Sensor最大视场左上角的水平偏移
|
||
("iWidthFOV", c_int), # 采集视场的宽度
|
||
("iHeightFOV", c_int), # 采集视场的高度
|
||
("iWidth", c_int), # 相机最终输出的图像的宽度
|
||
("iHeight", c_int), # 相机最终输出的图像的高度
|
||
("iWidthZoomHd", c_int), # 硬件缩放的宽度,不需要进行此操作的分辨率,此变量设置为0.
|
||
("iHeightZoomHd", c_int), # 硬件缩放的高度,不需要进行此操作的分辨率,此变量设置为0.
|
||
("iWidthZoomSw", c_int), # 软件缩放的宽度,不需要进行此操作的分辨率,此变量设置为0.
|
||
("iHeightZoomSw", c_int), # 软件缩放的高度,不需要进行此操作的分辨率,此变量设置为0.
|
||
]
|
||
|
||
def GetDescription(self):
|
||
return _string_buffer_to_str(self.acDescription)
|
||
|
||
#相机白平衡模式描述信息
|
||
class tSdkColorTemperatureDes(MvStructure):
|
||
_fields_ = [
|
||
("iIndex", c_int), # 模式索引号
|
||
("acDescription", c_char * 32), # 描述信息
|
||
]
|
||
|
||
def GetDescription(self):
|
||
return _string_buffer_to_str(self.acDescription)
|
||
|
||
#相机帧率描述信息
|
||
class tSdkFrameSpeed(MvStructure):
|
||
_fields_ = [
|
||
("iIndex", c_int), # 帧率索引号,一般0对应于低速模式,1对应于普通模式,2对应于高速模式
|
||
("acDescription", c_char * 32), # 描述信息
|
||
]
|
||
|
||
def GetDescription(self):
|
||
return _string_buffer_to_str(self.acDescription)
|
||
|
||
#相机曝光功能范围定义
|
||
class tSdkExpose(MvStructure):
|
||
_fields_ = [
|
||
("uiTargetMin", c_uint), #自动曝光亮度目标最小值
|
||
("uiTargetMax", c_uint), #自动曝光亮度目标最大值
|
||
("uiAnalogGainMin", c_uint), #模拟增益的最小值,单位为fAnalogGainStep中定义
|
||
("uiAnalogGainMax", c_uint), #模拟增益的最大值,单位为fAnalogGainStep中定义
|
||
("fAnalogGainStep", c_float), #模拟增益每增加1,对应的增加的放大倍数。例如,uiAnalogGainMin一般为16,fAnalogGainStep一般为0.125,那么最小放大倍数就是16*0.125 = 2倍
|
||
("uiExposeTimeMin", c_uint), #手动模式下,曝光时间的最小值,单位:行。根据CameraGetExposureLineTime可以获得一行对应的时间(微秒),从而得到整帧的曝光时间
|
||
("uiExposeTimeMax", c_uint), #手动模式下,曝光时间的最大值,单位:行
|
||
]
|
||
|
||
#触发模式描述
|
||
class tSdkTrigger(MvStructure):
|
||
_fields_ = [
|
||
("iIndex", c_int), # 模式索引号
|
||
("acDescription", c_char * 32), # 描述信息
|
||
]
|
||
|
||
def GetDescription(self):
|
||
return _string_buffer_to_str(self.acDescription)
|
||
|
||
#传输分包大小描述(主要是针对网络相机有效)
|
||
class tSdkPackLength(MvStructure):
|
||
_fields_ = [
|
||
("iIndex", c_int), # 模式索引号
|
||
("acDescription", c_char * 32), # 描述信息
|
||
("iPackSize", c_uint),
|
||
]
|
||
|
||
def GetDescription(self):
|
||
return _string_buffer_to_str(self.acDescription)
|
||
|
||
#预设的LUT表描述
|
||
class tSdkPresetLut(MvStructure):
|
||
_fields_ = [
|
||
("iIndex", c_int), # 编号
|
||
("acDescription", c_char * 32), # 描述信息
|
||
]
|
||
|
||
def GetDescription(self):
|
||
return _string_buffer_to_str(self.acDescription)
|
||
|
||
#AE算法描述
|
||
class tSdkAeAlgorithm(MvStructure):
|
||
_fields_ = [
|
||
("iIndex", c_int), # 编号
|
||
("acDescription", c_char * 32), # 描述信息
|
||
]
|
||
|
||
def GetDescription(self):
|
||
return _string_buffer_to_str(self.acDescription)
|
||
|
||
#RAW转RGB算法描述
|
||
class tSdkBayerDecodeAlgorithm(MvStructure):
|
||
_fields_ = [
|
||
("iIndex", c_int), # 编号
|
||
("acDescription", c_char * 32), # 描述信息
|
||
]
|
||
|
||
def GetDescription(self):
|
||
return _string_buffer_to_str(self.acDescription)
|
||
|
||
#帧率统计信息
|
||
class tSdkFrameStatistic(MvStructure):
|
||
_fields_ = [
|
||
("iTotal", c_int), #当前采集的总帧数(包括错误帧)
|
||
("iCapture", c_int), #当前采集的有效帧的数量
|
||
("iLost", c_int), #当前丢帧的数量
|
||
]
|
||
|
||
#相机输出的图像数据格式
|
||
class tSdkMediaType(MvStructure):
|
||
_fields_ = [
|
||
("iIndex", c_int), # 格式种类编号
|
||
("acDescription", c_char * 32), # 描述信息
|
||
("iMediaType", c_uint), # 对应的图像格式编码,如CAMERA_MEDIA_TYPE_BAYGR8。
|
||
]
|
||
|
||
def GetDescription(self):
|
||
return _string_buffer_to_str(self.acDescription)
|
||
|
||
#伽马的设定范围
|
||
class tGammaRange(MvStructure):
|
||
_fields_ = [
|
||
("iMin", c_int), #最小值
|
||
("iMax", c_int), #最大值
|
||
]
|
||
|
||
#对比度的设定范围
|
||
class tContrastRange(MvStructure):
|
||
_fields_ = [
|
||
("iMin", c_int), #最小值
|
||
("iMax", c_int), #最大值
|
||
]
|
||
|
||
#RGB三通道数字增益的设定范围
|
||
class tRgbGainRange(MvStructure):
|
||
_fields_ = [
|
||
("iRGainMin", c_int), #红色增益的最小值
|
||
("iRGainMax", c_int), #红色增益的最大值
|
||
("iGGainMin", c_int), #绿色增益的最小值
|
||
("iGGainMax", c_int), #绿色增益的最大值
|
||
("iBGainMin", c_int), #蓝色增益的最小值
|
||
("iBGainMax", c_int), #蓝色增益的最大值
|
||
]
|
||
|
||
#饱和度设定的范围
|
||
class tSaturationRange(MvStructure):
|
||
_fields_ = [
|
||
("iMin", c_int), #最小值
|
||
("iMax", c_int), #最大值
|
||
]
|
||
|
||
#锐化的设定范围
|
||
class tSharpnessRange(MvStructure):
|
||
_fields_ = [
|
||
("iMin", c_int), #最小值
|
||
("iMax", c_int), #最大值
|
||
]
|
||
|
||
#ISP模块的使能信息
|
||
class tSdkIspCapacity(MvStructure):
|
||
_fields_ = [
|
||
("bMonoSensor", c_int), #表示该型号相机是否为黑白相机,如果是黑白相机,则颜色相关的功能都无法调节
|
||
("bWbOnce", c_int), #表示该型号相机是否支持手动白平衡功能
|
||
("bAutoWb", c_int), #表示该型号相机是否支持自动白平衡功能
|
||
("bAutoExposure", c_int), #表示该型号相机是否支持自动曝光功能
|
||
("bManualExposure", c_int), #表示该型号相机是否支持手动曝光功能
|
||
("bAntiFlick", c_int), #表示该型号相机是否支持抗频闪功能
|
||
("bDeviceIsp", c_int), #表示该型号相机是否支持硬件ISP功能
|
||
("bForceUseDeviceIsp", c_int), #bDeviceIsp和bForceUseDeviceIsp同时为TRUE时,表示强制只用硬件ISP,不可取消。
|
||
("bZoomHD", c_int), #相机硬件是否支持图像缩放输出(只能是缩小)。
|
||
]
|
||
|
||
# 定义整合的设备描述信息,这些信息可以用于动态构建UI
|
||
class tSdkCameraCapbility(MvStructure):
|
||
_fields_ = [
|
||
("pTriggerDesc", POINTER(tSdkTrigger)),
|
||
("iTriggerDesc", c_int), #触发模式的个数,即pTriggerDesc数组的大小
|
||
("pImageSizeDesc", POINTER(tSdkImageResolution)),
|
||
("iImageSizeDesc", c_int), #预设分辨率的个数,即pImageSizeDesc数组的大小
|
||
("pClrTempDesc", POINTER(tSdkColorTemperatureDes)),
|
||
("iClrTempDesc", c_int), #预设色温个数
|
||
("pMediaTypeDesc", POINTER(tSdkMediaType)),
|
||
("iMediaTypeDesc", c_int), #相机输出图像格式的种类个数,即pMediaTypeDesc数组的大小。
|
||
("pFrameSpeedDesc", POINTER(tSdkFrameSpeed)), #可调节帧速类型,对应界面上普通 高速 和超级三种速度设置
|
||
("iFrameSpeedDesc", c_int), #可调节帧速类型的个数,即pFrameSpeedDesc数组的大小。
|
||
("pPackLenDesc", POINTER(tSdkPackLength)), #传输包长度,一般用于网络设备
|
||
("iPackLenDesc", c_int), #可供选择的传输分包长度的个数,即pPackLenDesc数组的大小。
|
||
("iOutputIoCounts", c_int), #可编程输出IO的个数
|
||
("iInputIoCounts", c_int), #可编程输入IO的个数
|
||
("pPresetLutDesc", POINTER(tSdkPresetLut)), #相机预设的LUT表
|
||
("iPresetLut", c_int), #相机预设的LUT表的个数,即pPresetLutDesc数组的大小
|
||
("iUserDataMaxLen", c_int), #指示该相机中用于保存用户数据区的最大长度。为0表示无。
|
||
("bParamInDevice", c_int), #指示该设备是否支持从设备中读写参数组。1为支持,0不支持。
|
||
("pAeAlmSwDesc", POINTER(tSdkAeAlgorithm)),#软件自动曝光算法描述
|
||
("iAeAlmSwDesc", c_int), #软件自动曝光算法个数
|
||
("pAeAlmHdDesc", POINTER(tSdkAeAlgorithm)),#硬件自动曝光算法描述,为NULL表示不支持硬件自动曝光
|
||
("iAeAlmHdDesc", c_int), #硬件自动曝光算法个数,为0表示不支持硬件自动曝光
|
||
("pBayerDecAlmSwDesc", POINTER(tSdkBayerDecodeAlgorithm)),#软件Bayer转换为RGB数据的算法描述
|
||
("iBayerDecAlmSwDesc", c_int), #软件Bayer转换为RGB数据的算法个数
|
||
("pBayerDecAlmHdDesc", POINTER(tSdkBayerDecodeAlgorithm)),#硬件Bayer转换为RGB数据的算法描述,为NULL表示不支持
|
||
("iBayerDecAlmHdDesc", c_int), #硬件Bayer转换为RGB数据的算法个数,为0表示不支持
|
||
|
||
# 图像参数的调节范围定义,用于动态构建UI
|
||
("sExposeDesc", tSdkExpose), #曝光的范围值
|
||
("sResolutionRange", tSdkResolutionRange), #分辨率范围描述
|
||
("sRgbGainRange", tRgbGainRange), #图像数字增益范围描述
|
||
("sSaturationRange", tSaturationRange), #饱和度范围描述
|
||
("sGammaRange", tGammaRange), #伽马范围描述
|
||
("sContrastRange", tContrastRange), #对比度范围描述
|
||
("sSharpnessRange", tSharpnessRange), #锐化范围描述
|
||
("sIspCapacity", tSdkIspCapacity), #ISP能力描述
|
||
]
|
||
|
||
#图像帧头信息
|
||
class tSdkFrameHead(MvStructure):
|
||
_fields_ = [
|
||
("uiMediaType", c_uint), # 图像格式,Image Format
|
||
("uBytes", c_uint), # 图像数据字节数,Total bytes
|
||
("iWidth", c_int), # 宽度 Image height
|
||
("iHeight", c_int), # 高度 Image width
|
||
("iWidthZoomSw", c_int), # 软件缩放的宽度,不需要进行软件裁剪的图像,此变量设置为0.
|
||
("iHeightZoomSw", c_int), # 软件缩放的高度,不需要进行软件裁剪的图像,此变量设置为0.
|
||
("bIsTrigger", c_int), # 指示是否为触发帧 is trigger
|
||
("uiTimeStamp", c_uint), # 该帧的采集时间,单位0.1毫秒
|
||
("uiExpTime", c_uint), # 当前图像的曝光值,单位为微秒us
|
||
("fAnalogGain", c_float), # 当前图像的模拟增益倍数
|
||
("iGamma", c_int), # 该帧图像的伽马设定值,仅当LUT模式为动态参数生成时有效,其余模式下为-1
|
||
("iContrast", c_int), # 该帧图像的对比度设定值,仅当LUT模式为动态参数生成时有效,其余模式下为-1
|
||
("iSaturation", c_int), # 该帧图像的饱和度设定值,对于黑白相机无意义,为0
|
||
("fRgain", c_float), # 该帧图像处理的红色数字增益倍数,对于黑白相机无意义,为1
|
||
("fGgain", c_float), # 该帧图像处理的绿色数字增益倍数,对于黑白相机无意义,为1
|
||
("fBgain", c_float), # 该帧图像处理的蓝色数字增益倍数,对于黑白相机无意义,为1
|
||
]
|
||
|
||
# Grabber统计信息
|
||
class tSdkGrabberStat(MvStructure):
|
||
_fields_ = [
|
||
("Width", c_int), # 帧图像大小
|
||
("Height", c_int), # 帧图像大小
|
||
("Disp", c_int), # 显示帧数量
|
||
("Capture", c_int), # 采集的有效帧的数量
|
||
("Lost", c_int), # 丢帧的数量
|
||
("Error", c_int), # 错帧的数量
|
||
("DispFps", c_float), # 显示帧率
|
||
("CapFps", c_float), # 捕获帧率
|
||
]
|
||
|
||
# 方法回调辅助类
|
||
class method(object):
|
||
def __init__(self, FuncType):
|
||
super(method, self).__init__()
|
||
self.FuncType = FuncType
|
||
self.cache = {}
|
||
|
||
def __call__(self, cb):
|
||
self.cb = cb
|
||
return self
|
||
|
||
def __get__(self, obj, objtype):
|
||
try:
|
||
return self.cache[obj]
|
||
except KeyError as e:
|
||
def cl(*args):
|
||
return self.cb(obj, *args)
|
||
r = self.cache[obj] = self.FuncType(cl)
|
||
return r
|
||
|
||
# 图像捕获的回调函数定义
|
||
CAMERA_SNAP_PROC = CALLBACK_FUNC_TYPE(None, c_int, c_void_p, POINTER(tSdkFrameHead), c_void_p)
|
||
|
||
# 相机连接状态回调
|
||
CAMERA_CONNECTION_STATUS_CALLBACK = CALLBACK_FUNC_TYPE(None, c_int, c_uint, c_uint, c_void_p)
|
||
|
||
# 异步抓图完成回调
|
||
pfnCameraGrabberSaveImageComplete = CALLBACK_FUNC_TYPE(None, c_void_p, c_void_p, c_int, c_void_p)
|
||
|
||
# 帧监听回调
|
||
pfnCameraGrabberFrameListener = CALLBACK_FUNC_TYPE(c_int, c_void_p, c_int, c_void_p, POINTER(tSdkFrameHead), c_void_p)
|
||
|
||
# 采集器图像捕获的回调
|
||
pfnCameraGrabberFrameCallback = CALLBACK_FUNC_TYPE(None, c_void_p, c_void_p, POINTER(tSdkFrameHead), c_void_p)
|
||
|
||
#-----------------------------------函数接口------------------------------------------
|
||
|
||
# 线程局部存储
|
||
_tls = local()
|
||
|
||
# 存储最后一次SDK调用返回的错误码
|
||
def GetLastError():
|
||
try:
|
||
return _tls.last_error
|
||
except AttributeError as e:
|
||
_tls.last_error = 0
|
||
return 0
|
||
|
||
def SetLastError(err_code):
|
||
_tls.last_error = err_code
|
||
|
||
def _string_buffer_to_str(buf):
|
||
s = buf if isinstance(buf, type(b'')) else buf.value
|
||
|
||
for codec in ('gbk', 'utf-8'):
|
||
try:
|
||
s = s.decode(codec)
|
||
break
|
||
except UnicodeDecodeError as e:
|
||
continue
|
||
|
||
if isinstance(s, str):
|
||
return s
|
||
else:
|
||
return s.encode('utf-8')
|
||
|
||
def _str_to_string_buffer(str):
|
||
if type(str) is type(u''):
|
||
s = str.encode('gbk')
|
||
else:
|
||
s = str.decode('utf-8').encode('gbk')
|
||
return create_string_buffer(s)
|
||
|
||
def CameraSdkInit(iLanguageSel):
|
||
err_code = _sdk.CameraSdkInit(iLanguageSel)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraEnumerateDevice(MaxCount = 32):
|
||
Nums = c_int(MaxCount)
|
||
pCameraList = (tSdkCameraDevInfo * Nums.value)()
|
||
err_code = _sdk.CameraEnumerateDevice(pCameraList, byref(Nums))
|
||
SetLastError(err_code)
|
||
return pCameraList[0:Nums.value]
|
||
|
||
def CameraEnumerateDeviceEx():
|
||
return _sdk.CameraEnumerateDeviceEx()
|
||
|
||
def CameraIsOpened(pCameraInfo):
|
||
pOpened = c_int()
|
||
err_code = _sdk.CameraIsOpened(byref(pCameraInfo), byref(pOpened) )
|
||
SetLastError(err_code)
|
||
return pOpened.value != 0
|
||
|
||
def CameraInit(pCameraInfo, emParamLoadMode = -1, emTeam = -1):
|
||
pCameraHandle = c_int()
|
||
err_code = _sdk.CameraInit(byref(pCameraInfo), emParamLoadMode, emTeam, byref(pCameraHandle))
|
||
SetLastError(err_code)
|
||
if err_code != 0:
|
||
raise CameraException(err_code)
|
||
return pCameraHandle.value
|
||
|
||
def CameraInitEx(iDeviceIndex, emParamLoadMode = -1, emTeam = -1):
|
||
pCameraHandle = c_int()
|
||
err_code = _sdk.CameraInitEx(iDeviceIndex, emParamLoadMode, emTeam, byref(pCameraHandle))
|
||
SetLastError(err_code)
|
||
if err_code != 0:
|
||
raise CameraException(err_code)
|
||
return pCameraHandle.value
|
||
|
||
def CameraInitEx2(CameraName):
|
||
pCameraHandle = c_int()
|
||
err_code = _sdk.CameraInitEx2(_str_to_string_buffer(CameraName), byref(pCameraHandle))
|
||
SetLastError(err_code)
|
||
if err_code != 0:
|
||
raise CameraException(err_code)
|
||
return pCameraHandle.value
|
||
|
||
def CameraSetCallbackFunction(hCamera, pCallBack, pContext = 0):
|
||
err_code = _sdk.CameraSetCallbackFunction(hCamera, pCallBack, c_void_p(pContext), None)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraUnInit(hCamera):
|
||
err_code = _sdk.CameraUnInit(hCamera)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetInformation(hCamera):
|
||
pbuffer = c_char_p()
|
||
err_code = _sdk.CameraGetInformation(hCamera, byref(pbuffer) )
|
||
SetLastError(err_code)
|
||
if err_code == 0 and pbuffer.value is not None:
|
||
return _string_buffer_to_str(pbuffer)
|
||
return ''
|
||
|
||
def CameraImageProcess(hCamera, pbyIn, pbyOut, pFrInfo):
|
||
err_code = _sdk.CameraImageProcess(hCamera, c_void_p(pbyIn), c_void_p(pbyOut), byref(pFrInfo))
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraImageProcessEx(hCamera, pbyIn, pbyOut, pFrInfo, uOutFormat, uReserved):
|
||
err_code = _sdk.CameraImageProcessEx(hCamera, c_void_p(pbyIn), c_void_p(pbyOut), byref(pFrInfo), uOutFormat, uReserved)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraDisplayInit(hCamera, hWndDisplay):
|
||
err_code = _sdk.CameraDisplayInit(hCamera, hWndDisplay)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraDisplayRGB24(hCamera, pFrameBuffer, pFrInfo):
|
||
err_code = _sdk.CameraDisplayRGB24(hCamera, c_void_p(pFrameBuffer), byref(pFrInfo) )
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraSetDisplayMode(hCamera, iMode):
|
||
err_code = _sdk.CameraSetDisplayMode(hCamera, iMode)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraSetDisplayOffset(hCamera, iOffsetX, iOffsetY):
|
||
err_code = _sdk.CameraSetDisplayOffset(hCamera, iOffsetX, iOffsetY)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraSetDisplaySize(hCamera, iWidth, iHeight):
|
||
err_code = _sdk.CameraSetDisplaySize(hCamera, iWidth, iHeight)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetImageBuffer(hCamera, wTimes):
|
||
pbyBuffer = c_void_p()
|
||
pFrameInfo = tSdkFrameHead()
|
||
err_code = _sdk.CameraGetImageBuffer(hCamera, byref(pFrameInfo), byref(pbyBuffer), wTimes)
|
||
SetLastError(err_code)
|
||
if err_code != 0:
|
||
raise CameraException(err_code)
|
||
return (pbyBuffer.value, pFrameInfo)
|
||
|
||
def CameraGetImageBufferEx(hCamera, wTimes):
|
||
_sdk.CameraGetImageBufferEx.restype = c_void_p
|
||
piWidth = c_int()
|
||
piHeight = c_int()
|
||
pFrameBuffer = _sdk.CameraGetImageBufferEx(hCamera, byref(piWidth), byref(piHeight), wTimes)
|
||
err_code = CAMERA_STATUS_SUCCESS if pFrameBuffer else CAMERA_STATUS_TIME_OUT
|
||
SetLastError(err_code)
|
||
if pFrameBuffer:
|
||
return (pFrameBuffer, piWidth.value, piHeight.value)
|
||
else:
|
||
raise CameraException(err_code)
|
||
|
||
def CameraSnapToBuffer(hCamera, wTimes):
|
||
pbyBuffer = c_void_p()
|
||
pFrameInfo = tSdkFrameHead()
|
||
err_code = _sdk.CameraSnapToBuffer(hCamera, byref(pFrameInfo), byref(pbyBuffer), wTimes)
|
||
SetLastError(err_code)
|
||
if err_code != 0:
|
||
raise CameraException(err_code)
|
||
return (pbyBuffer.value, pFrameInfo)
|
||
|
||
def CameraReleaseImageBuffer(hCamera, pbyBuffer):
|
||
err_code = _sdk.CameraReleaseImageBuffer(hCamera, c_void_p(pbyBuffer) )
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraPlay(hCamera):
|
||
err_code = _sdk.CameraPlay(hCamera)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraPause(hCamera):
|
||
err_code = _sdk.CameraPause(hCamera)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraStop(hCamera):
|
||
err_code = _sdk.CameraStop(hCamera)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraInitRecord(hCamera, iFormat, pcSavePath, b2GLimit, dwQuality, iFrameRate):
|
||
err_code = _sdk.CameraInitRecord(hCamera, iFormat, _str_to_string_buffer(pcSavePath), b2GLimit, dwQuality, iFrameRate)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraStopRecord(hCamera):
|
||
err_code = _sdk.CameraStopRecord(hCamera)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraPushFrame(hCamera, pbyImageBuffer, pFrInfo):
|
||
err_code = _sdk.CameraPushFrame(hCamera, c_void_p(pbyImageBuffer), byref(pFrInfo) )
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraSaveImage(hCamera, lpszFileName, pbyImageBuffer, pFrInfo, byFileType, byQuality):
|
||
err_code = _sdk.CameraSaveImage(hCamera, _str_to_string_buffer(lpszFileName), c_void_p(pbyImageBuffer), byref(pFrInfo), byFileType, byQuality)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraSaveImageEx(hCamera, lpszFileName, pbyImageBuffer, uImageFormat, iWidth, iHeight, byFileType, byQuality):
|
||
err_code = _sdk.CameraSaveImageEx(hCamera, _str_to_string_buffer(lpszFileName), c_void_p(pbyImageBuffer), uImageFormat, iWidth, iHeight, byFileType, byQuality)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetImageResolution(hCamera):
|
||
psCurVideoSize = tSdkImageResolution()
|
||
err_code = _sdk.CameraGetImageResolution(hCamera, byref(psCurVideoSize) )
|
||
SetLastError(err_code)
|
||
return psCurVideoSize
|
||
|
||
def CameraSetImageResolution(hCamera, pImageResolution):
|
||
err_code = _sdk.CameraSetImageResolution(hCamera, byref(pImageResolution) )
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraSetImageResolutionEx(hCamera, iIndex, Mode, ModeSize, x, y, width, height, ZoomWidth, ZoomHeight):
|
||
err_code = _sdk.CameraSetImageResolutionEx(hCamera, iIndex, Mode, ModeSize, x, y, width, height, ZoomWidth, ZoomHeight)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetMediaType(hCamera):
|
||
piMediaType = c_int()
|
||
err_code = _sdk.CameraGetMediaType(hCamera, byref(piMediaType) )
|
||
SetLastError(err_code)
|
||
return piMediaType.value
|
||
|
||
def CameraSetMediaType(hCamera, iMediaType):
|
||
err_code = _sdk.CameraSetMediaType(hCamera, iMediaType)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraSetAeState(hCamera, bAeState):
|
||
err_code = _sdk.CameraSetAeState(hCamera, bAeState)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetAeState(hCamera):
|
||
pAeState = c_int()
|
||
err_code = _sdk.CameraGetAeState(hCamera, byref(pAeState) )
|
||
SetLastError(err_code)
|
||
return pAeState.value
|
||
|
||
def CameraSetSharpness(hCamera, iSharpness):
|
||
err_code = _sdk.CameraSetSharpness(hCamera, iSharpness)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetSharpness(hCamera):
|
||
piSharpness = c_int()
|
||
err_code = _sdk.CameraGetSharpness(hCamera, byref(piSharpness) )
|
||
SetLastError(err_code)
|
||
return piSharpness.value
|
||
|
||
def CameraSetLutMode(hCamera, emLutMode):
|
||
err_code = _sdk.CameraSetLutMode(hCamera, emLutMode)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetLutMode(hCamera):
|
||
pemLutMode = c_int()
|
||
err_code = _sdk.CameraGetLutMode(hCamera, byref(pemLutMode) )
|
||
SetLastError(err_code)
|
||
return pemLutMode.value
|
||
|
||
def CameraSelectLutPreset(hCamera, iSel):
|
||
err_code = _sdk.CameraSelectLutPreset(hCamera, iSel)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetLutPresetSel(hCamera):
|
||
piSel = c_int()
|
||
err_code = _sdk.CameraGetLutPresetSel(hCamera, byref(piSel) )
|
||
SetLastError(err_code)
|
||
return piSel.value
|
||
|
||
def CameraSetCustomLut(hCamera, iChannel, pLut):
|
||
pLutNative = (c_ushort * 4096)(*pLut)
|
||
err_code = _sdk.CameraSetCustomLut(hCamera, iChannel, pLutNative)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetCustomLut(hCamera, iChannel):
|
||
pLutNative = (c_ushort * 4096)()
|
||
err_code = _sdk.CameraGetCustomLut(hCamera, iChannel, pLutNative)
|
||
SetLastError(err_code)
|
||
return pLutNative[:]
|
||
|
||
def CameraGetCurrentLut(hCamera, iChannel):
|
||
pLutNative = (c_ushort * 4096)()
|
||
err_code = _sdk.CameraGetCurrentLut(hCamera, iChannel, pLutNative)
|
||
SetLastError(err_code)
|
||
return pLutNative[:]
|
||
|
||
def CameraSetWbMode(hCamera, bAuto):
|
||
err_code = _sdk.CameraSetWbMode(hCamera, bAuto)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetWbMode(hCamera):
|
||
pbAuto = c_int()
|
||
err_code = _sdk.CameraGetWbMode(hCamera, byref(pbAuto) )
|
||
SetLastError(err_code)
|
||
return pbAuto.value
|
||
|
||
def CameraSetPresetClrTemp(hCamera, iSel):
|
||
err_code = _sdk.CameraSetPresetClrTemp(hCamera, iSel)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetPresetClrTemp(hCamera):
|
||
piSel = c_int()
|
||
err_code = _sdk.CameraGetPresetClrTemp(hCamera, byref(piSel) )
|
||
SetLastError(err_code)
|
||
return piSel.value
|
||
|
||
def CameraSetUserClrTempGain(hCamera, iRgain, iGgain, iBgain):
|
||
err_code = _sdk.CameraSetUserClrTempGain(hCamera, iRgain, iGgain, iBgain)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetUserClrTempGain(hCamera):
|
||
piRgain = c_int()
|
||
piGgain = c_int()
|
||
piBgain = c_int()
|
||
err_code = _sdk.CameraGetUserClrTempGain(hCamera, byref(piRgain), byref(piGgain), byref(piBgain) )
|
||
SetLastError(err_code)
|
||
return (piRgain.value, piGgain.value, piBgain.value)
|
||
|
||
def CameraSetUserClrTempMatrix(hCamera, pMatrix):
|
||
pMatrixNative = (c_float * 9)(*pMatrix)
|
||
err_code = _sdk.CameraSetUserClrTempMatrix(hCamera, pMatrixNative)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetUserClrTempMatrix(hCamera):
|
||
pMatrixNative = (c_float * 9)()
|
||
err_code = _sdk.CameraGetUserClrTempMatrix(hCamera, pMatrixNative)
|
||
SetLastError(err_code)
|
||
return pMatrixNative[:]
|
||
|
||
def CameraSetClrTempMode(hCamera, iMode):
|
||
err_code = _sdk.CameraSetClrTempMode(hCamera, iMode)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetClrTempMode(hCamera):
|
||
piMode = c_int()
|
||
err_code = _sdk.CameraGetClrTempMode(hCamera, byref(piMode) )
|
||
SetLastError(err_code)
|
||
return piMode.value
|
||
|
||
def CameraSetOnceWB(hCamera):
|
||
err_code = _sdk.CameraSetOnceWB(hCamera)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraSetOnceBB(hCamera):
|
||
err_code = _sdk.CameraSetOnceBB(hCamera)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraSetAeTarget(hCamera, iAeTarget):
|
||
err_code = _sdk.CameraSetAeTarget(hCamera, iAeTarget)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetAeTarget(hCamera):
|
||
piAeTarget = c_int()
|
||
err_code = _sdk.CameraGetAeTarget(hCamera, byref(piAeTarget) )
|
||
SetLastError(err_code)
|
||
return piAeTarget.value
|
||
|
||
def CameraSetAeExposureRange(hCamera, fMinExposureTime, fMaxExposureTime):
|
||
err_code = _sdk.CameraSetAeExposureRange(hCamera, c_double(fMinExposureTime), c_double(fMaxExposureTime) )
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetAeExposureRange(hCamera):
|
||
fMinExposureTime = c_double()
|
||
fMaxExposureTime = c_double()
|
||
err_code = _sdk.CameraGetAeExposureRange(hCamera, byref(fMinExposureTime), byref(fMaxExposureTime) )
|
||
SetLastError(err_code)
|
||
return (fMinExposureTime.value, fMaxExposureTime.value)
|
||
|
||
def CameraSetAeAnalogGainRange(hCamera, iMinAnalogGain, iMaxAnalogGain):
|
||
err_code = _sdk.CameraSetAeAnalogGainRange(hCamera, iMinAnalogGain, iMaxAnalogGain)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetAeAnalogGainRange(hCamera):
|
||
iMinAnalogGain = c_int()
|
||
iMaxAnalogGain = c_int()
|
||
err_code = _sdk.CameraGetAeAnalogGainRange(hCamera, byref(iMinAnalogGain), byref(iMaxAnalogGain) )
|
||
SetLastError(err_code)
|
||
return (iMinAnalogGain.value, iMaxAnalogGain.value)
|
||
|
||
def CameraSetAeThreshold(hCamera, iThreshold):
|
||
err_code = _sdk.CameraSetAeThreshold(hCamera, iThreshold)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetAeThreshold(hCamera):
|
||
iThreshold = c_int()
|
||
err_code = _sdk.CameraGetAeThreshold(hCamera, byref(iThreshold))
|
||
SetLastError(err_code)
|
||
return iThreshold.value
|
||
|
||
def CameraSetExposureTime(hCamera, fExposureTime):
|
||
err_code = _sdk.CameraSetExposureTime(hCamera, c_double(fExposureTime) )
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetExposureLineTime(hCamera):
|
||
pfLineTime = c_double()
|
||
err_code = _sdk.CameraGetExposureLineTime(hCamera, byref(pfLineTime))
|
||
SetLastError(err_code)
|
||
return pfLineTime.value
|
||
|
||
def CameraGetExposureTime(hCamera):
|
||
pfExposureTime = c_double()
|
||
err_code = _sdk.CameraGetExposureTime(hCamera, byref(pfExposureTime))
|
||
SetLastError(err_code)
|
||
return pfExposureTime.value
|
||
|
||
def CameraGetExposureTimeRange(hCamera):
|
||
pfMin = c_double()
|
||
pfMax = c_double()
|
||
pfStep = c_double()
|
||
err_code = _sdk.CameraGetExposureTimeRange(hCamera, byref(pfMin), byref(pfMax), byref(pfStep))
|
||
SetLastError(err_code)
|
||
return (pfMin.value, pfMax.value, pfStep.value)
|
||
|
||
def CameraSetAnalogGain(hCamera, iAnalogGain):
|
||
err_code = _sdk.CameraSetAnalogGain(hCamera, iAnalogGain)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetAnalogGain(hCamera):
|
||
piAnalogGain = c_int()
|
||
err_code = _sdk.CameraGetAnalogGain(hCamera, byref(piAnalogGain))
|
||
SetLastError(err_code)
|
||
return piAnalogGain.value
|
||
|
||
def CameraSetGain(hCamera, iRGain, iGGain, iBGain):
|
||
err_code = _sdk.CameraSetGain(hCamera, iRGain, iGGain, iBGain)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetGain(hCamera):
|
||
piRGain = c_int()
|
||
piGGain = c_int()
|
||
piBGain = c_int()
|
||
err_code = _sdk.CameraGetGain(hCamera, byref(piRGain), byref(piGGain), byref(piBGain))
|
||
SetLastError(err_code)
|
||
return (piRGain.value, piGGain.value, piBGain.value)
|
||
|
||
def CameraSetGamma(hCamera, iGamma):
|
||
err_code = _sdk.CameraSetGamma(hCamera, iGamma)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetGamma(hCamera):
|
||
piGamma = c_int()
|
||
err_code = _sdk.CameraGetGamma(hCamera, byref(piGamma))
|
||
SetLastError(err_code)
|
||
return piGamma.value
|
||
|
||
def CameraSetContrast(hCamera, iContrast):
|
||
err_code = _sdk.CameraSetContrast(hCamera, iContrast)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetContrast(hCamera):
|
||
piContrast = c_int()
|
||
err_code = _sdk.CameraGetContrast(hCamera, byref(piContrast))
|
||
SetLastError(err_code)
|
||
return piContrast.value
|
||
|
||
def CameraSetSaturation(hCamera, iSaturation):
|
||
err_code = _sdk.CameraSetSaturation(hCamera, iSaturation)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetSaturation(hCamera):
|
||
piSaturation = c_int()
|
||
err_code = _sdk.CameraGetSaturation(hCamera, byref(piSaturation))
|
||
SetLastError(err_code)
|
||
return piSaturation.value
|
||
|
||
def CameraSetMonochrome(hCamera, bEnable):
|
||
err_code = _sdk.CameraSetMonochrome(hCamera, bEnable)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetMonochrome(hCamera):
|
||
pbEnable = c_int()
|
||
err_code = _sdk.CameraGetMonochrome(hCamera, byref(pbEnable))
|
||
SetLastError(err_code)
|
||
return pbEnable.value
|
||
|
||
def CameraSetInverse(hCamera, bEnable):
|
||
err_code = _sdk.CameraSetInverse(hCamera, bEnable)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetInverse(hCamera):
|
||
pbEnable = c_int()
|
||
err_code = _sdk.CameraGetInverse(hCamera, byref(pbEnable))
|
||
SetLastError(err_code)
|
||
return pbEnable.value
|
||
|
||
def CameraSetAntiFlick(hCamera, bEnable):
|
||
err_code = _sdk.CameraSetAntiFlick(hCamera, bEnable)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetAntiFlick(hCamera):
|
||
pbEnable = c_int()
|
||
err_code = _sdk.CameraGetAntiFlick(hCamera, byref(pbEnable))
|
||
SetLastError(err_code)
|
||
return pbEnable.value
|
||
|
||
def CameraGetLightFrequency(hCamera):
|
||
piFrequencySel = c_int()
|
||
err_code = _sdk.CameraGetLightFrequency(hCamera, byref(piFrequencySel))
|
||
SetLastError(err_code)
|
||
return piFrequencySel.value
|
||
|
||
def CameraSetLightFrequency(hCamera, iFrequencySel):
|
||
err_code = _sdk.CameraSetLightFrequency(hCamera, iFrequencySel)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraSetFrameSpeed(hCamera, iFrameSpeed):
|
||
err_code = _sdk.CameraSetFrameSpeed(hCamera, iFrameSpeed)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetFrameSpeed(hCamera):
|
||
piFrameSpeed = c_int()
|
||
err_code = _sdk.CameraGetFrameSpeed(hCamera, byref(piFrameSpeed))
|
||
SetLastError(err_code)
|
||
return piFrameSpeed.value
|
||
|
||
def CameraSetParameterMode(hCamera, iMode):
|
||
err_code = _sdk.CameraSetParameterMode(hCamera, iMode)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetParameterMode(hCamera):
|
||
piTarget = c_int()
|
||
err_code = _sdk.CameraGetParameterMode(hCamera, byref(piTarget))
|
||
SetLastError(err_code)
|
||
return piTarget.value
|
||
|
||
def CameraSetParameterMask(hCamera, uMask):
|
||
err_code = _sdk.CameraSetParameterMask(hCamera, uMask)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraSaveParameter(hCamera, iTeam):
|
||
err_code = _sdk.CameraSaveParameter(hCamera, iTeam)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraSaveParameterToFile(hCamera, sFileName):
|
||
err_code = _sdk.CameraSaveParameterToFile(hCamera, _str_to_string_buffer(sFileName))
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraReadParameterFromFile(hCamera, sFileName):
|
||
err_code = _sdk.CameraReadParameterFromFile(hCamera, _str_to_string_buffer(sFileName))
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraLoadParameter(hCamera, iTeam):
|
||
err_code = _sdk.CameraLoadParameter(hCamera, iTeam)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetCurrentParameterGroup(hCamera):
|
||
piTeam = c_int()
|
||
err_code = _sdk.CameraGetCurrentParameterGroup(hCamera, byref(piTeam))
|
||
SetLastError(err_code)
|
||
return piTeam.value
|
||
|
||
def CameraSetTransPackLen(hCamera, iPackSel):
|
||
err_code = _sdk.CameraSetTransPackLen(hCamera, iPackSel)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetTransPackLen(hCamera):
|
||
piPackSel = c_int()
|
||
err_code = _sdk.CameraGetTransPackLen(hCamera, byref(piPackSel))
|
||
SetLastError(err_code)
|
||
return piPackSel.value
|
||
|
||
def CameraIsAeWinVisible(hCamera):
|
||
pbIsVisible = c_int()
|
||
err_code = _sdk.CameraIsAeWinVisible(hCamera, byref(pbIsVisible))
|
||
SetLastError(err_code)
|
||
return pbIsVisible.value
|
||
|
||
def CameraSetAeWinVisible(hCamera, bIsVisible):
|
||
err_code = _sdk.CameraSetAeWinVisible(hCamera, bIsVisible)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetAeWindow(hCamera):
|
||
piHOff = c_int()
|
||
piVOff = c_int()
|
||
piWidth = c_int()
|
||
piHeight = c_int()
|
||
err_code = _sdk.CameraGetAeWindow(hCamera, byref(piHOff), byref(piVOff), byref(piWidth), byref(piHeight))
|
||
SetLastError(err_code)
|
||
return (piHOff.value, piVOff.value, piWidth.value, piHeight.value)
|
||
|
||
def CameraSetAeWindow(hCamera, iHOff, iVOff, iWidth, iHeight):
|
||
err_code = _sdk.CameraSetAeWindow(hCamera, iHOff, iVOff, iWidth, iHeight)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraSetMirror(hCamera, iDir, bEnable):
|
||
err_code = _sdk.CameraSetMirror(hCamera, iDir, bEnable)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetMirror(hCamera, iDir):
|
||
pbEnable = c_int()
|
||
err_code = _sdk.CameraGetMirror(hCamera, iDir, byref(pbEnable))
|
||
SetLastError(err_code)
|
||
return pbEnable.value
|
||
|
||
def CameraSetRotate(hCamera, iRot):
|
||
err_code = _sdk.CameraSetRotate(hCamera, iRot)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetRotate(hCamera):
|
||
iRot = c_int()
|
||
err_code = _sdk.CameraGetRotate(hCamera, byref(iRot))
|
||
SetLastError(err_code)
|
||
return iRot.value
|
||
|
||
def CameraGetWbWindow(hCamera):
|
||
PiHOff = c_int()
|
||
PiVOff = c_int()
|
||
PiWidth = c_int()
|
||
PiHeight = c_int()
|
||
err_code = _sdk.CameraGetWbWindow(hCamera, byref(PiHOff), byref(PiVOff), byref(PiWidth), byref(PiHeight))
|
||
SetLastError(err_code)
|
||
return (PiHOff.value, PiVOff.value, PiWidth.value, PiHeight.value)
|
||
|
||
def CameraSetWbWindow(hCamera, iHOff, iVOff, iWidth, iHeight):
|
||
err_code = _sdk.CameraSetWbWindow(hCamera, iHOff, iVOff, iWidth, iHeight)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraIsWbWinVisible(hCamera):
|
||
pbShow = c_int()
|
||
err_code = _sdk.CameraIsWbWinVisible(hCamera, byref(pbShow))
|
||
SetLastError(err_code)
|
||
return pbShow.value
|
||
|
||
def CameraSetWbWinVisible(hCamera, bShow):
|
||
err_code = _sdk.CameraSetWbWinVisible(hCamera, bShow)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraImageOverlay(hCamera, pRgbBuffer, pFrInfo):
|
||
err_code = _sdk.CameraImageOverlay(hCamera, c_void_p(pRgbBuffer), byref(pFrInfo))
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraSetCrossLine(hCamera, iLine, x, y, uColor, bVisible):
|
||
err_code = _sdk.CameraSetCrossLine(hCamera, iLine, x, y, uColor, bVisible)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetCrossLine(hCamera, iLine):
|
||
px = c_int()
|
||
py = c_int()
|
||
pcolor = c_uint()
|
||
pbVisible = c_int()
|
||
err_code = _sdk.CameraGetCrossLine(hCamera, iLine, byref(px), byref(py), byref(pcolor), byref(pbVisible))
|
||
SetLastError(err_code)
|
||
return (px.value, py.value, pcolor.value, pbVisible.value)
|
||
|
||
def CameraGetCapability(hCamera):
|
||
pCameraInfo = tSdkCameraCapbility()
|
||
err_code = _sdk.CameraGetCapability(hCamera, byref(pCameraInfo))
|
||
SetLastError(err_code)
|
||
return pCameraInfo
|
||
|
||
def CameraWriteSN(hCamera, pbySN, iLevel):
|
||
err_code = _sdk.CameraWriteSN(hCamera, _str_to_string_buffer(pbySN), iLevel)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraReadSN(hCamera, iLevel):
|
||
pbySN = create_string_buffer(64)
|
||
err_code = _sdk.CameraReadSN(hCamera, pbySN, iLevel)
|
||
SetLastError(err_code)
|
||
return _string_buffer_to_str(pbySN)
|
||
|
||
def CameraSetTriggerDelayTime(hCamera, uDelayTimeUs):
|
||
err_code = _sdk.CameraSetTriggerDelayTime(hCamera, uDelayTimeUs)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetTriggerDelayTime(hCamera):
|
||
puDelayTimeUs = c_uint()
|
||
err_code = _sdk.CameraGetTriggerDelayTime(hCamera, byref(puDelayTimeUs))
|
||
SetLastError(err_code)
|
||
return puDelayTimeUs.value
|
||
|
||
def CameraSetTriggerCount(hCamera, iCount):
|
||
err_code = _sdk.CameraSetTriggerCount(hCamera, iCount)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetTriggerCount(hCamera):
|
||
piCount = c_int()
|
||
err_code = _sdk.CameraGetTriggerCount(hCamera, byref(piCount))
|
||
SetLastError(err_code)
|
||
return piCount.value
|
||
|
||
def CameraSoftTrigger(hCamera):
|
||
err_code = _sdk.CameraSoftTrigger(hCamera)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraSetTriggerMode(hCamera, iModeSel):
|
||
err_code = _sdk.CameraSetTriggerMode(hCamera, iModeSel)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetTriggerMode(hCamera):
|
||
piModeSel = c_int()
|
||
err_code = _sdk.CameraGetTriggerMode(hCamera, byref(piModeSel))
|
||
SetLastError(err_code)
|
||
return piModeSel.value
|
||
|
||
def CameraSetStrobeMode(hCamera, iMode):
|
||
err_code = _sdk.CameraSetStrobeMode(hCamera, iMode)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetStrobeMode(hCamera):
|
||
piMode = c_int()
|
||
err_code = _sdk.CameraGetStrobeMode(hCamera, byref(piMode))
|
||
SetLastError(err_code)
|
||
return piMode.value
|
||
|
||
def CameraSetStrobeDelayTime(hCamera, uDelayTimeUs):
|
||
err_code = _sdk.CameraSetStrobeDelayTime(hCamera, uDelayTimeUs)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetStrobeDelayTime(hCamera):
|
||
upDelayTimeUs = c_uint()
|
||
err_code = _sdk.CameraGetStrobeDelayTime(hCamera, byref(upDelayTimeUs))
|
||
SetLastError(err_code)
|
||
return upDelayTimeUs.value
|
||
|
||
def CameraSetStrobePulseWidth(hCamera, uTimeUs):
|
||
err_code = _sdk.CameraSetStrobePulseWidth(hCamera, uTimeUs)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetStrobePulseWidth(hCamera):
|
||
upTimeUs = c_uint()
|
||
err_code = _sdk.CameraGetStrobePulseWidth(hCamera, byref(upTimeUs))
|
||
SetLastError(err_code)
|
||
return upTimeUs.value
|
||
|
||
def CameraSetStrobePolarity(hCamera, uPolarity):
|
||
err_code = _sdk.CameraSetStrobePolarity(hCamera, uPolarity)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetStrobePolarity(hCamera):
|
||
upPolarity = c_uint()
|
||
err_code = _sdk.CameraGetStrobePolarity(hCamera, byref(upPolarity))
|
||
SetLastError(err_code)
|
||
return upPolarity.value
|
||
|
||
def CameraSetExtTrigSignalType(hCamera, iType):
|
||
err_code = _sdk.CameraSetExtTrigSignalType(hCamera, iType)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetExtTrigSignalType(hCamera):
|
||
ipType = c_int()
|
||
err_code = _sdk.CameraGetExtTrigSignalType(hCamera, byref(ipType))
|
||
SetLastError(err_code)
|
||
return ipType.value
|
||
|
||
def CameraSetExtTrigShutterType(hCamera, iType):
|
||
err_code = _sdk.CameraSetExtTrigShutterType(hCamera, iType)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetExtTrigShutterType(hCamera):
|
||
ipType = c_int()
|
||
err_code = _sdk.CameraGetExtTrigShutterType(hCamera, byref(ipType))
|
||
SetLastError(err_code)
|
||
return ipType.value
|
||
|
||
def CameraSetExtTrigDelayTime(hCamera, uDelayTimeUs):
|
||
err_code = _sdk.CameraSetExtTrigDelayTime(hCamera, uDelayTimeUs)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetExtTrigDelayTime(hCamera):
|
||
upDelayTimeUs = c_uint()
|
||
err_code = _sdk.CameraGetExtTrigDelayTime(hCamera, byref(upDelayTimeUs))
|
||
SetLastError(err_code)
|
||
return upDelayTimeUs.value
|
||
|
||
def CameraSetExtTrigJitterTime(hCamera, uTimeUs):
|
||
err_code = _sdk.CameraSetExtTrigJitterTime(hCamera, uTimeUs)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetExtTrigJitterTime(hCamera):
|
||
upTimeUs = c_uint()
|
||
err_code = _sdk.CameraGetExtTrigJitterTime(hCamera, byref(upTimeUs))
|
||
SetLastError(err_code)
|
||
return upTimeUs.value
|
||
|
||
def CameraGetExtTrigCapability(hCamera):
|
||
puCapabilityMask = c_uint()
|
||
err_code = _sdk.CameraGetExtTrigCapability(hCamera, byref(puCapabilityMask))
|
||
SetLastError(err_code)
|
||
return puCapabilityMask.value
|
||
|
||
def CameraPauseLevelTrigger(hCamera):
|
||
err_code = _sdk.CameraPauseLevelTrigger(hCamera)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetResolutionForSnap(hCamera):
|
||
pImageResolution = tSdkImageResolution()
|
||
err_code = _sdk.CameraGetResolutionForSnap(hCamera, byref(pImageResolution))
|
||
SetLastError(err_code)
|
||
return pImageResolution
|
||
|
||
def CameraSetResolutionForSnap(hCamera, pImageResolution):
|
||
err_code = _sdk.CameraSetResolutionForSnap(hCamera, byref(pImageResolution))
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraCustomizeResolution(hCamera):
|
||
pImageCustom = tSdkImageResolution()
|
||
err_code = _sdk.CameraCustomizeResolution(hCamera, byref(pImageCustom))
|
||
SetLastError(err_code)
|
||
return pImageCustom
|
||
|
||
def CameraCustomizeReferWin(hCamera, iWinType, hParent):
|
||
piHOff = c_int()
|
||
piVOff = c_int()
|
||
piWidth = c_int()
|
||
piHeight = c_int()
|
||
err_code = _sdk.CameraCustomizeReferWin(hCamera, iWinType, hParent, byref(piHOff), byref(piVOff), byref(piWidth), byref(piHeight))
|
||
SetLastError(err_code)
|
||
return (piHOff.value, piVOff.value, piWidth.value, piHeight.value)
|
||
|
||
def CameraShowSettingPage(hCamera, bShow):
|
||
err_code = _sdk.CameraShowSettingPage(hCamera, bShow)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraCreateSettingPage(hCamera, hParent, pWinText, pCallbackFunc = None, pCallbackCtx = 0, uReserved = 0):
|
||
err_code = _sdk.CameraCreateSettingPage(hCamera, hParent, _str_to_string_buffer(pWinText), pCallbackFunc, c_void_p(pCallbackCtx), uReserved)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraCreateSettingPageEx(hCamera):
|
||
err_code = _sdk.CameraCreateSettingPageEx(hCamera)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraSetActiveSettingSubPage(hCamera, index):
|
||
err_code = _sdk.CameraSetActiveSettingSubPage(hCamera, index)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraSetSettingPageParent(hCamera, hParentWnd, Flags):
|
||
err_code = _sdk.CameraSetSettingPageParent(hCamera, hParentWnd, Flags)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetSettingPageHWnd(hCamera):
|
||
hWnd = c_void_p()
|
||
err_code = _sdk.CameraGetSettingPageHWnd(hCamera, byref(hWnd))
|
||
SetLastError(err_code)
|
||
return hWnd.value
|
||
|
||
def CameraSpecialControl(hCamera, dwCtrlCode, dwParam, lpData):
|
||
err_code = _sdk.CameraSpecialControl(hCamera, dwCtrlCode, dwParam, c_void_p(lpData) )
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetFrameStatistic(hCamera):
|
||
psFrameStatistic = tSdkFrameStatistic()
|
||
err_code = _sdk.CameraGetFrameStatistic(hCamera, byref(psFrameStatistic))
|
||
SetLastError(err_code)
|
||
return psFrameStatistic
|
||
|
||
def CameraSetNoiseFilter(hCamera, bEnable):
|
||
err_code = _sdk.CameraSetNoiseFilter(hCamera, bEnable)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetNoiseFilterState(hCamera):
|
||
pEnable = c_int()
|
||
err_code = _sdk.CameraGetNoiseFilterState(hCamera, byref(pEnable))
|
||
SetLastError(err_code)
|
||
return pEnable.value
|
||
|
||
def CameraRstTimeStamp(hCamera):
|
||
err_code = _sdk.CameraRstTimeStamp(hCamera)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraSaveUserData(hCamera, uStartAddr, pbData):
|
||
err_code = _sdk.CameraSaveUserData(hCamera, uStartAddr, pbData, len(pbData))
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraLoadUserData(hCamera, uStartAddr, ilen):
|
||
pbData = create_string_buffer(ilen)
|
||
err_code = _sdk.CameraLoadUserData(hCamera, uStartAddr, pbData, ilen)
|
||
SetLastError(err_code)
|
||
return pbData[:]
|
||
|
||
def CameraGetFriendlyName(hCamera):
|
||
pName = create_string_buffer(64)
|
||
err_code = _sdk.CameraGetFriendlyName(hCamera, pName)
|
||
SetLastError(err_code)
|
||
return _string_buffer_to_str(pName)
|
||
|
||
def CameraSetFriendlyName(hCamera, pName):
|
||
pNameBuf = _str_to_string_buffer(pName)
|
||
resize(pNameBuf, 64)
|
||
err_code = _sdk.CameraSetFriendlyName(hCamera, pNameBuf)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraSdkGetVersionString():
|
||
pVersionString = create_string_buffer(64)
|
||
err_code = _sdk.CameraSdkGetVersionString(pVersionString)
|
||
SetLastError(err_code)
|
||
return _string_buffer_to_str(pVersionString)
|
||
|
||
def CameraCheckFwUpdate(hCamera):
|
||
pNeedUpdate = c_int()
|
||
err_code = _sdk.CameraCheckFwUpdate(hCamera, byref(pNeedUpdate))
|
||
SetLastError(err_code)
|
||
return pNeedUpdate.value
|
||
|
||
def CameraGetFirmwareVersion(hCamera):
|
||
pVersion = create_string_buffer(64)
|
||
err_code = _sdk.CameraGetFirmwareVersion(hCamera, pVersion)
|
||
SetLastError(err_code)
|
||
return _string_buffer_to_str(pVersion)
|
||
|
||
def CameraGetEnumInfo(hCamera):
|
||
pCameraInfo = tSdkCameraDevInfo()
|
||
err_code = _sdk.CameraGetEnumInfo(hCamera, byref(pCameraInfo))
|
||
SetLastError(err_code)
|
||
return pCameraInfo
|
||
|
||
def CameraGetInerfaceVersion(hCamera):
|
||
pVersion = create_string_buffer(64)
|
||
err_code = _sdk.CameraGetInerfaceVersion(hCamera, pVersion)
|
||
SetLastError(err_code)
|
||
return _string_buffer_to_str(pVersion)
|
||
|
||
def CameraSetIOState(hCamera, iOutputIOIndex, uState):
|
||
err_code = _sdk.CameraSetIOState(hCamera, iOutputIOIndex, uState)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetIOState(hCamera, iInputIOIndex):
|
||
puState = c_int()
|
||
err_code = _sdk.CameraGetIOState(hCamera, iInputIOIndex, byref(puState))
|
||
SetLastError(err_code)
|
||
return puState.value
|
||
|
||
def CameraSetInPutIOMode(hCamera, iInputIOIndex, iMode):
|
||
err_code = _sdk.CameraSetInPutIOMode(hCamera, iInputIOIndex, iMode)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraSetOutPutIOMode(hCamera, iOutputIOIndex, iMode):
|
||
err_code = _sdk.CameraSetOutPutIOMode(hCamera, iOutputIOIndex, iMode)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraSetOutPutPWM(hCamera, iOutputIOIndex, iCycle, uDuty):
|
||
err_code = _sdk.CameraSetOutPutPWM(hCamera, iOutputIOIndex, iCycle, uDuty)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraSetAeAlgorithm(hCamera, iIspProcessor, iAeAlgorithmSel):
|
||
err_code = _sdk.CameraSetAeAlgorithm(hCamera, iIspProcessor, iAeAlgorithmSel)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetAeAlgorithm(hCamera, iIspProcessor):
|
||
piAlgorithmSel = c_int()
|
||
err_code = _sdk.CameraGetAeAlgorithm(hCamera, iIspProcessor, byref(piAlgorithmSel))
|
||
SetLastError(err_code)
|
||
return piAlgorithmSel.value
|
||
|
||
def CameraSetBayerDecAlgorithm(hCamera, iIspProcessor, iAlgorithmSel):
|
||
err_code = _sdk.CameraSetBayerDecAlgorithm(hCamera, iIspProcessor, iAlgorithmSel)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetBayerDecAlgorithm(hCamera, iIspProcessor):
|
||
piAlgorithmSel = c_int()
|
||
err_code = _sdk.CameraGetBayerDecAlgorithm(hCamera, iIspProcessor, byref(piAlgorithmSel))
|
||
SetLastError(err_code)
|
||
return piAlgorithmSel.value
|
||
|
||
def CameraSetIspProcessor(hCamera, iIspProcessor):
|
||
err_code = _sdk.CameraSetIspProcessor(hCamera, iIspProcessor)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetIspProcessor(hCamera):
|
||
piIspProcessor = c_int()
|
||
err_code = _sdk.CameraGetIspProcessor(hCamera, byref(piIspProcessor))
|
||
SetLastError(err_code)
|
||
return piIspProcessor.value
|
||
|
||
def CameraSetBlackLevel(hCamera, iBlackLevel):
|
||
err_code = _sdk.CameraSetBlackLevel(hCamera, iBlackLevel)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetBlackLevel(hCamera):
|
||
piBlackLevel = c_int()
|
||
err_code = _sdk.CameraGetBlackLevel(hCamera, byref(piBlackLevel))
|
||
SetLastError(err_code)
|
||
return piBlackLevel.value
|
||
|
||
def CameraSetWhiteLevel(hCamera, iWhiteLevel):
|
||
err_code = _sdk.CameraSetWhiteLevel(hCamera, iWhiteLevel)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetWhiteLevel(hCamera):
|
||
piWhiteLevel = c_int()
|
||
err_code = _sdk.CameraGetWhiteLevel(hCamera, byref(piWhiteLevel))
|
||
SetLastError(err_code)
|
||
return piWhiteLevel.value
|
||
|
||
def CameraSetIspOutFormat(hCamera, uFormat):
|
||
err_code = _sdk.CameraSetIspOutFormat(hCamera, uFormat)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetIspOutFormat(hCamera):
|
||
puFormat = c_int()
|
||
err_code = _sdk.CameraGetIspOutFormat(hCamera, byref(puFormat))
|
||
SetLastError(err_code)
|
||
return puFormat.value
|
||
|
||
def CameraGetErrorString(iStatusCode):
|
||
_sdk.CameraGetErrorString.restype = c_char_p
|
||
msg = _sdk.CameraGetErrorString(iStatusCode)
|
||
if msg:
|
||
return _string_buffer_to_str(msg)
|
||
else:
|
||
return ''
|
||
|
||
def CameraGetImageBufferEx2(hCamera, pImageData, uOutFormat, wTimes):
|
||
piWidth = c_int()
|
||
piHeight = c_int()
|
||
err_code = _sdk.CameraGetImageBufferEx2(hCamera, c_void_p(pImageData), uOutFormat, byref(piWidth), byref(piHeight), wTimes)
|
||
SetLastError(err_code)
|
||
if err_code != 0:
|
||
raise CameraException(err_code)
|
||
return (piWidth.value, piHeight.value)
|
||
|
||
def CameraGetImageBufferEx3(hCamera, pImageData, uOutFormat, wTimes):
|
||
piWidth = c_int()
|
||
piHeight = c_int()
|
||
puTimeStamp = c_int()
|
||
err_code = _sdk.CameraGetImageBufferEx3(hCamera, c_void_p(pImageData), uOutFormat, byref(piWidth), byref(piHeight), byref(puTimeStamp), wTimes)
|
||
SetLastError(err_code)
|
||
if err_code != 0:
|
||
raise CameraException(err_code)
|
||
return (piWidth.value, piHeight.value, puTimeStamp.value)
|
||
|
||
def CameraGetCapabilityEx2(hCamera):
|
||
pMaxWidth = c_int()
|
||
pMaxHeight = c_int()
|
||
pbColorCamera = c_int()
|
||
err_code = _sdk.CameraGetCapabilityEx2(hCamera, byref(pMaxWidth), byref(pMaxHeight), byref(pbColorCamera))
|
||
SetLastError(err_code)
|
||
return (pMaxWidth.value, pMaxHeight.value, pbColorCamera.value)
|
||
|
||
def CameraReConnect(hCamera):
|
||
err_code = _sdk.CameraReConnect(hCamera)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraConnectTest(hCamera):
|
||
err_code = _sdk.CameraConnectTest(hCamera)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraSetLedEnable(hCamera, index, enable):
|
||
err_code = _sdk.CameraSetLedEnable(hCamera, index, enable)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetLedEnable(hCamera, index):
|
||
enable = c_int()
|
||
err_code = _sdk.CameraGetLedEnable(hCamera, index, byref(enable))
|
||
SetLastError(err_code)
|
||
return enable.value
|
||
|
||
def CameraSetLedOnOff(hCamera, index, onoff):
|
||
err_code = _sdk.CameraSetLedOnOff(hCamera, index, onoff)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetLedOnOff(hCamera, index):
|
||
onoff = c_int()
|
||
err_code = _sdk.CameraGetLedOnOff(hCamera, index, byref(onoff))
|
||
SetLastError(err_code)
|
||
return onoff.value
|
||
|
||
def CameraSetLedDuration(hCamera, index, duration):
|
||
err_code = _sdk.CameraSetLedDuration(hCamera, index, duration)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetLedDuration(hCamera, index):
|
||
duration = c_uint()
|
||
err_code = _sdk.CameraGetLedDuration(hCamera, index, byref(duration))
|
||
SetLastError(err_code)
|
||
return duration.value
|
||
|
||
def CameraSetLedBrightness(hCamera, index, uBrightness):
|
||
err_code = _sdk.CameraSetLedBrightness(hCamera, index, uBrightness)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetLedBrightness(hCamera, index):
|
||
uBrightness = c_uint()
|
||
err_code = _sdk.CameraGetLedBrightness(hCamera, index, byref(uBrightness))
|
||
SetLastError(err_code)
|
||
return uBrightness.value
|
||
|
||
def CameraEnableTransferRoi(hCamera, uEnableMask):
|
||
err_code = _sdk.CameraEnableTransferRoi(hCamera, uEnableMask)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraSetTransferRoi(hCamera, index, X1, Y1, X2, Y2):
|
||
err_code = _sdk.CameraSetTransferRoi(hCamera, index, X1, Y1, X2, Y2)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetTransferRoi(hCamera, index):
|
||
pX1 = c_uint()
|
||
pY1 = c_uint()
|
||
pX2 = c_uint()
|
||
pY2 = c_uint()
|
||
err_code = _sdk.CameraGetTransferRoi(hCamera, index, byref(pX1), byref(pY1), byref(pX2), byref(pY2))
|
||
SetLastError(err_code)
|
||
return (pX1.value, pY1.value, pX2.value, pY2.value)
|
||
|
||
def CameraAlignMalloc(size, align = 16):
|
||
_sdk.CameraAlignMalloc.restype = c_void_p
|
||
r = _sdk.CameraAlignMalloc(size, align)
|
||
return r
|
||
|
||
def CameraAlignFree(membuffer):
|
||
_sdk.CameraAlignFree(c_void_p(membuffer))
|
||
|
||
def CameraSetAutoConnect(hCamera, bEnable):
|
||
err_code = _sdk.CameraSetAutoConnect(hCamera, bEnable)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetAutoConnect(hCamera):
|
||
pbEnable = c_int()
|
||
err_code = _sdk.CameraGetAutoConnect(hCamera, byref(pbEnable))
|
||
SetLastError(err_code)
|
||
return pbEnable.value
|
||
|
||
def CameraGetReConnectCounts(hCamera):
|
||
puCounts = c_int()
|
||
err_code = _sdk.CameraGetReConnectCounts(hCamera, byref(puCounts))
|
||
SetLastError(err_code)
|
||
return puCounts.value
|
||
|
||
def CameraSetSingleGrabMode(hCamera, bEnable):
|
||
err_code = _sdk.CameraSetSingleGrabMode(hCamera, bEnable)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetSingleGrabMode(hCamera):
|
||
pbEnable = c_int()
|
||
err_code = _sdk.CameraGetSingleGrabMode(hCamera, byref(pbEnable))
|
||
SetLastError(err_code)
|
||
return pbEnable.value
|
||
|
||
def CameraRestartGrab(hCamera):
|
||
err_code = _sdk.CameraRestartGrab(hCamera)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraEvaluateImageDefinition(hCamera, iAlgorithSel, pbyIn, pFrInfo):
|
||
DefinitionValue = c_double()
|
||
err_code = _sdk.CameraEvaluateImageDefinition(hCamera, iAlgorithSel, c_void_p(pbyIn), byref(pFrInfo), byref(DefinitionValue))
|
||
SetLastError(err_code)
|
||
return DefinitionValue.value
|
||
|
||
def CameraDrawText(pRgbBuffer, pFrInfo, pFontFileName, FontWidth, FontHeight, pText, Left, Top, Width, Height, TextColor, uFlags):
|
||
err_code = _sdk.CameraDrawText(c_void_p(pRgbBuffer), byref(pFrInfo), _str_to_string_buffer(pFontFileName), FontWidth, FontHeight, _str_to_string_buffer(pText), Left, Top, Width, Height, TextColor, uFlags)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGigeGetIp(pCameraInfo):
|
||
CamIp = create_string_buffer(32)
|
||
CamMask = create_string_buffer(32)
|
||
CamGateWay = create_string_buffer(32)
|
||
EtIp = create_string_buffer(32)
|
||
EtMask = create_string_buffer(32)
|
||
EtGateWay = create_string_buffer(32)
|
||
err_code = _sdk.CameraGigeGetIp(byref(pCameraInfo), CamIp, CamMask, CamGateWay, EtIp, EtMask, EtGateWay)
|
||
SetLastError(err_code)
|
||
return (_string_buffer_to_str(CamIp), _string_buffer_to_str(CamMask), _string_buffer_to_str(CamGateWay),
|
||
_string_buffer_to_str(EtIp), _string_buffer_to_str(EtMask), _string_buffer_to_str(EtGateWay) )
|
||
|
||
def CameraGigeSetIp(pCameraInfo, Ip, SubMask, GateWay, bPersistent):
|
||
err_code = _sdk.CameraGigeSetIp(byref(pCameraInfo),
|
||
_str_to_string_buffer(Ip), _str_to_string_buffer(SubMask), _str_to_string_buffer(GateWay), bPersistent)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGigeGetMac(pCameraInfo):
|
||
CamMac = create_string_buffer(32)
|
||
EtMac = create_string_buffer(32)
|
||
err_code = _sdk.CameraGigeGetMac(byref(pCameraInfo), CamMac, EtMac)
|
||
SetLastError(err_code)
|
||
return (_string_buffer_to_str(CamMac), _string_buffer_to_str(EtMac) )
|
||
|
||
def CameraEnableFastResponse(hCamera):
|
||
err_code = _sdk.CameraEnableFastResponse(hCamera)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraSetCorrectDeadPixel(hCamera, bEnable):
|
||
err_code = _sdk.CameraSetCorrectDeadPixel(hCamera, bEnable)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetCorrectDeadPixel(hCamera):
|
||
pbEnable = c_int()
|
||
err_code = _sdk.CameraGetCorrectDeadPixel(hCamera, byref(pbEnable))
|
||
SetLastError(err_code)
|
||
return pbEnable.value
|
||
|
||
def CameraFlatFieldingCorrectSetEnable(hCamera, bEnable):
|
||
err_code = _sdk.CameraFlatFieldingCorrectSetEnable(hCamera, bEnable)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraFlatFieldingCorrectGetEnable(hCamera):
|
||
pbEnable = c_int()
|
||
err_code = _sdk.CameraFlatFieldingCorrectGetEnable(hCamera, byref(pbEnable))
|
||
SetLastError(err_code)
|
||
return pbEnable.value
|
||
|
||
def CameraFlatFieldingCorrectSetParameter(hCamera, pDarkFieldingImage, pDarkFieldingFrInfo, pLightFieldingImage, pLightFieldingFrInfo):
|
||
err_code = _sdk.CameraFlatFieldingCorrectSetParameter(hCamera, c_void_p(pDarkFieldingImage), byref(pDarkFieldingFrInfo), c_void_p(pLightFieldingImage), byref(pLightFieldingFrInfo))
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraFlatFieldingCorrectGetParameterState(hCamera):
|
||
pbValid = c_int()
|
||
pFilePath = create_string_buffer(1024)
|
||
err_code = _sdk.CameraFlatFieldingCorrectGetParameterState(hCamera, byref(pbValid), pFilePath)
|
||
SetLastError(err_code)
|
||
return (pbValid.value, _string_buffer_to_str(pFilePath) )
|
||
|
||
def CameraFlatFieldingCorrectSaveParameterToFile(hCamera, pszFileName):
|
||
err_code = _sdk.CameraFlatFieldingCorrectSaveParameterToFile(hCamera, _str_to_string_buffer(pszFileName))
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraFlatFieldingCorrectLoadParameterFromFile(hCamera, pszFileName):
|
||
err_code = _sdk.CameraFlatFieldingCorrectLoadParameterFromFile(hCamera, _str_to_string_buffer(pszFileName))
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraCommonCall(hCamera, pszCall, uResultBufSize):
|
||
pszResult = create_string_buffer(uResultBufSize) if uResultBufSize > 0 else None
|
||
err_code = _sdk.CameraCommonCall(hCamera, _str_to_string_buffer(pszCall), pszResult, uResultBufSize)
|
||
SetLastError(err_code)
|
||
return _string_buffer_to_str(pszResult) if pszResult else ''
|
||
|
||
def CameraSetDenoise3DParams(hCamera, bEnable, nCount, Weights):
|
||
assert(nCount >= 2 and nCount <= 8)
|
||
if Weights:
|
||
assert(len(Weights) == nCount)
|
||
WeightsNative = (c_float * nCount)(*Weights)
|
||
else:
|
||
WeightsNative = None
|
||
err_code = _sdk.CameraSetDenoise3DParams(hCamera, bEnable, nCount, WeightsNative)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetDenoise3DParams(hCamera):
|
||
bEnable = c_int()
|
||
nCount = c_int()
|
||
bUseWeight = c_int()
|
||
Weights = (c_float * 8)()
|
||
err_code = _sdk.CameraGetDenoise3DParams(hCamera, byref(bEnable), byref(nCount), byref(bUseWeight), Weights)
|
||
SetLastError(err_code)
|
||
bEnable, nCount, bUseWeight = bEnable.value, nCount.value, bUseWeight.value
|
||
if bUseWeight:
|
||
Weights = Weights[:nCount]
|
||
else:
|
||
Weights = None
|
||
return (bEnable, nCount, bUseWeight, Weights)
|
||
|
||
def CameraManualDenoise3D(InFramesHead, InFramesData, nCount, Weights, OutFrameHead, OutFrameData):
|
||
assert(nCount > 0)
|
||
assert(len(InFramesData) == nCount)
|
||
assert(Weights is None or len(Weights) == nCount)
|
||
InFramesDataNative = (c_void_p * nCount)(*InFramesData)
|
||
WeightsNative = (c_float * nCount)(*Weights) if Weights else None
|
||
err_code = _sdk.CameraManualDenoise3D(byref(InFramesHead), InFramesDataNative, nCount, WeightsNative, byref(OutFrameHead), c_void_p(OutFrameData))
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraCustomizeDeadPixels(hCamera, hParent):
|
||
err_code = _sdk.CameraCustomizeDeadPixels(hCamera, hParent)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraReadDeadPixels(hCamera):
|
||
pNumPixel = c_int()
|
||
err_code = _sdk.CameraReadDeadPixels(hCamera, None, None, byref(pNumPixel))
|
||
SetLastError(err_code)
|
||
if pNumPixel.value < 1:
|
||
return None
|
||
UShortArray = c_ushort * pNumPixel.value
|
||
pRows = UShortArray()
|
||
pCols = UShortArray()
|
||
err_code = _sdk.CameraReadDeadPixels(hCamera, pRows, pCols, byref(pNumPixel))
|
||
SetLastError(err_code)
|
||
if err_code == 0:
|
||
pNumPixel = pNumPixel.value
|
||
else:
|
||
pNumPixel = 0
|
||
return (pRows[:pNumPixel], pCols[:pNumPixel])
|
||
|
||
def CameraAddDeadPixels(hCamera, pRows, pCols, NumPixel):
|
||
UShortArray = c_ushort * NumPixel
|
||
pRowsNative = UShortArray(*pRows)
|
||
pColsNative = UShortArray(*pCols)
|
||
err_code = _sdk.CameraAddDeadPixels(hCamera, pRowsNative, pColsNative, NumPixel)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraRemoveDeadPixels(hCamera, pRows, pCols, NumPixel):
|
||
UShortArray = c_ushort * NumPixel
|
||
pRowsNative = UShortArray(*pRows)
|
||
pColsNative = UShortArray(*pCols)
|
||
err_code = _sdk.CameraRemoveDeadPixels(hCamera, pRowsNative, pColsNative, NumPixel)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraRemoveAllDeadPixels(hCamera):
|
||
err_code = _sdk.CameraRemoveAllDeadPixels(hCamera)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraSaveDeadPixels(hCamera):
|
||
err_code = _sdk.CameraSaveDeadPixels(hCamera)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraSaveDeadPixelsToFile(hCamera, sFileName):
|
||
err_code = _sdk.CameraSaveDeadPixelsToFile(hCamera, _str_to_string_buffer(sFileName))
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraLoadDeadPixelsFromFile(hCamera, sFileName):
|
||
err_code = _sdk.CameraLoadDeadPixelsFromFile(hCamera, _str_to_string_buffer(sFileName))
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetImageBufferPriority(hCamera, wTimes, Priority):
|
||
pFrameInfo = tSdkFrameHead()
|
||
pbyBuffer = c_void_p()
|
||
err_code = _sdk.CameraGetImageBufferPriority(hCamera, byref(pFrameInfo), byref(pbyBuffer), wTimes, Priority)
|
||
SetLastError(err_code)
|
||
if err_code != 0:
|
||
raise CameraException(err_code)
|
||
return (pbyBuffer.value, pFrameInfo)
|
||
|
||
def CameraGetImageBufferPriorityEx(hCamera, wTimes, Priority):
|
||
_sdk.CameraGetImageBufferPriorityEx.restype = c_void_p
|
||
piWidth = c_int()
|
||
piHeight = c_int()
|
||
pFrameBuffer = _sdk.CameraGetImageBufferPriorityEx(hCamera, byref(piWidth), byref(piHeight), wTimes, Priority)
|
||
err_code = CAMERA_STATUS_SUCCESS if pFrameBuffer else CAMERA_STATUS_TIME_OUT
|
||
SetLastError(err_code)
|
||
if pFrameBuffer:
|
||
return (pFrameBuffer, piWidth.value, piHeight.value)
|
||
else:
|
||
raise CameraException(err_code)
|
||
|
||
def CameraGetImageBufferPriorityEx2(hCamera, pImageData, uOutFormat, wTimes, Priority):
|
||
piWidth = c_int()
|
||
piHeight = c_int()
|
||
err_code = _sdk.CameraGetImageBufferPriorityEx2(hCamera, c_void_p(pImageData), uOutFormat, byref(piWidth), byref(piHeight), wTimes, Priority)
|
||
SetLastError(err_code)
|
||
if err_code != 0:
|
||
raise CameraException(err_code)
|
||
return (piWidth.value, piHeight.value)
|
||
|
||
def CameraGetImageBufferPriorityEx3(hCamera, pImageData, uOutFormat, wTimes, Priority):
|
||
piWidth = c_int()
|
||
piHeight = c_int()
|
||
puTimeStamp = c_uint()
|
||
err_code = _sdk.CameraGetImageBufferPriorityEx3(hCamera, c_void_p(pImageData), uOutFormat, byref(piWidth), byref(piHeight), byref(puTimeStamp), wTimes, Priority)
|
||
SetLastError(err_code)
|
||
if err_code != 0:
|
||
raise CameraException(err_code)
|
||
return (piWidth.value, piHeight.value, puTimeStamp.value)
|
||
|
||
def CameraClearBuffer(hCamera):
|
||
err_code = _sdk.CameraClearBuffer(hCamera)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraSoftTriggerEx(hCamera, uFlags):
|
||
err_code = _sdk.CameraSoftTriggerEx(hCamera, uFlags)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraSetHDR(hCamera, value):
|
||
err_code = _sdk.CameraSetHDR(hCamera, value)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetHDR(hCamera):
|
||
value = c_int()
|
||
err_code = _sdk.CameraGetHDR(hCamera, byref(value))
|
||
SetLastError(err_code)
|
||
return value.value
|
||
|
||
def CameraGetFrameID(hCamera):
|
||
FrameID = c_uint()
|
||
err_code = _sdk.CameraGetFrameID(hCamera, byref(FrameID))
|
||
SetLastError(err_code)
|
||
return FrameID.value
|
||
|
||
def CameraGetFrameTimeStamp(hCamera):
|
||
TimeStamp = c_uint64()
|
||
TimeStampL = c_uint32.from_buffer(TimeStamp)
|
||
TimeStampH = c_uint32.from_buffer(TimeStamp, 4)
|
||
err_code = _sdk.CameraGetFrameTimeStamp(hCamera, byref(TimeStampL), byref(TimeStampH))
|
||
SetLastError(err_code)
|
||
return TimeStamp.value
|
||
|
||
def CameraSetHDRGainMode(hCamera, value):
|
||
err_code = _sdk.CameraSetHDRGainMode(hCamera, value)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetHDRGainMode(hCamera):
|
||
value = c_int()
|
||
err_code = _sdk.CameraGetHDRGainMode(hCamera, byref(value))
|
||
SetLastError(err_code)
|
||
return value.value
|
||
|
||
def CameraCreateDIBitmap(hDC, pFrameBuffer, pFrameHead):
|
||
outBitmap = c_void_p()
|
||
err_code = _sdk.CameraCreateDIBitmap(hDC, c_void_p(pFrameBuffer), byref(pFrameHead), byref(outBitmap))
|
||
SetLastError(err_code)
|
||
return outBitmap.value
|
||
|
||
def CameraDrawFrameBuffer(pFrameBuffer, pFrameHead, hWnd, Algorithm, Mode):
|
||
err_code = _sdk.CameraDrawFrameBuffer(c_void_p(pFrameBuffer), byref(pFrameHead), c_void_p(hWnd), Algorithm, Mode)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraFlipFrameBuffer(pFrameBuffer, pFrameHead, Flags):
|
||
err_code = _sdk.CameraFlipFrameBuffer(c_void_p(pFrameBuffer), byref(pFrameHead), Flags)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraConvertFrameBufferFormat(hCamera, pInFrameBuffer, pOutFrameBuffer, outWidth, outHeight, outMediaType, pFrameHead):
|
||
err_code = _sdk.CameraConvertFrameBufferFormat(hCamera, c_void_p(pInFrameBuffer), c_void_p(pOutFrameBuffer), outWidth, outHeight, outMediaType, byref(pFrameHead))
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraSetConnectionStatusCallback(hCamera, pCallBack, pContext = 0):
|
||
err_code = _sdk.CameraSetConnectionStatusCallback(hCamera, pCallBack, c_void_p(pContext) )
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraSetLightingControllerMode(hCamera, index, mode):
|
||
err_code = _sdk.CameraSetLightingControllerMode(hCamera, index, mode)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraSetLightingControllerState(hCamera, index, state):
|
||
err_code = _sdk.CameraSetLightingControllerState(hCamera, index, state)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraSetFrameResendCount(hCamera, count):
|
||
err_code = _sdk.CameraSetFrameResendCount(hCamera, count)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraSetUndistortParams(hCamera, width, height, cameraMatrix, distCoeffs):
|
||
assert(len(cameraMatrix) == 4)
|
||
assert(len(distCoeffs) == 5)
|
||
cameraMatrixNative = (c_double * len(cameraMatrix))(*cameraMatrix)
|
||
distCoeffsNative = (c_double * len(distCoeffs))(*distCoeffs)
|
||
err_code = _sdk.CameraSetUndistortParams(hCamera, width, height, cameraMatrixNative, distCoeffsNative)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetUndistortParams(hCamera):
|
||
width = c_int()
|
||
height = c_int()
|
||
cameraMatrix = (c_double * 4)()
|
||
distCoeffs = (c_double * 5)()
|
||
err_code = _sdk.CameraGetUndistortParams(hCamera, byref(width), byref(height), cameraMatrix, distCoeffs)
|
||
SetLastError(err_code)
|
||
width, height = width.value, height.value
|
||
cameraMatrix = cameraMatrix[:]
|
||
distCoeffs = distCoeffs[:]
|
||
return (width, height, cameraMatrix, distCoeffs)
|
||
|
||
def CameraSetUndistortEnable(hCamera, bEnable):
|
||
err_code = _sdk.CameraSetUndistortEnable(hCamera, bEnable)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetUndistortEnable(hCamera):
|
||
value = c_int()
|
||
err_code = _sdk.CameraGetUndistortEnable(hCamera, byref(value))
|
||
SetLastError(err_code)
|
||
return value.value
|
||
|
||
def CameraCustomizeUndistort(hCamera, hParent):
|
||
err_code = _sdk.CameraCustomizeUndistort(hCamera, hParent)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGetEyeCount(hCamera):
|
||
EyeCount = c_int()
|
||
err_code = _sdk.CameraGetEyeCount(hCamera, byref(EyeCount))
|
||
SetLastError(err_code)
|
||
return EyeCount.value
|
||
|
||
def CameraMultiEyeImageProcess(hCamera, iEyeIndex, pbyIn, pInFrInfo, pbyOut, pOutFrInfo, uOutFormat, uReserved):
|
||
err_code = _sdk.CameraMultiEyeImageProcess(hCamera, iEyeIndex, c_void_p(pbyIn), byref(pInFrInfo), c_void_p(pbyOut), byref(pOutFrInfo), uOutFormat, uReserved)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
# CameraGrabber
|
||
|
||
def CameraGrabber_CreateFromDevicePage():
|
||
Grabber = c_void_p()
|
||
err_code = _sdk.CameraGrabber_CreateFromDevicePage(byref(Grabber))
|
||
SetLastError(err_code)
|
||
if err_code != 0:
|
||
raise CameraException(err_code)
|
||
return Grabber.value
|
||
|
||
def CameraGrabber_CreateByIndex(Index):
|
||
Grabber = c_void_p()
|
||
err_code = _sdk.CameraGrabber_CreateByIndex(byref(Grabber), Index)
|
||
SetLastError(err_code)
|
||
if err_code != 0:
|
||
raise CameraException(err_code)
|
||
return Grabber.value
|
||
|
||
def CameraGrabber_CreateByName(Name):
|
||
Grabber = c_void_p()
|
||
err_code = _sdk.CameraGrabber_CreateByName(byref(Grabber), _str_to_string_buffer(Name))
|
||
SetLastError(err_code)
|
||
if err_code != 0:
|
||
raise CameraException(err_code)
|
||
return Grabber.value
|
||
|
||
def CameraGrabber_Create(pDevInfo):
|
||
Grabber = c_void_p()
|
||
err_code = _sdk.CameraGrabber_Create(byref(Grabber), byref(pDevInfo))
|
||
SetLastError(err_code)
|
||
if err_code != 0:
|
||
raise CameraException(err_code)
|
||
return Grabber.value
|
||
|
||
def CameraGrabber_Destroy(Grabber):
|
||
err_code = _sdk.CameraGrabber_Destroy(c_void_p(Grabber))
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGrabber_SetHWnd(Grabber, hWnd):
|
||
err_code = _sdk.CameraGrabber_SetHWnd(c_void_p(Grabber), c_void_p(hWnd) )
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGrabber_SetPriority(Grabber, Priority):
|
||
err_code = _sdk.CameraGrabber_SetPriority(c_void_p(Grabber), Priority)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGrabber_StartLive(Grabber):
|
||
err_code = _sdk.CameraGrabber_StartLive(c_void_p(Grabber))
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGrabber_StopLive(Grabber):
|
||
err_code = _sdk.CameraGrabber_StopLive(c_void_p(Grabber))
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGrabber_SaveImage(Grabber, TimeOut):
|
||
Image = c_void_p()
|
||
err_code = _sdk.CameraGrabber_SaveImage(c_void_p(Grabber), byref(Image), TimeOut)
|
||
SetLastError(err_code)
|
||
if err_code != 0:
|
||
raise CameraException(err_code)
|
||
return Image.value
|
||
|
||
def CameraGrabber_SaveImageAsync(Grabber):
|
||
err_code = _sdk.CameraGrabber_SaveImageAsync(c_void_p(Grabber))
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGrabber_SaveImageAsyncEx(Grabber, UserData):
|
||
err_code = _sdk.CameraGrabber_SaveImageAsyncEx(c_void_p(Grabber), c_void_p(UserData))
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGrabber_SetSaveImageCompleteCallback(Grabber, Callback, Context = 0):
|
||
err_code = _sdk.CameraGrabber_SetSaveImageCompleteCallback(c_void_p(Grabber), Callback, c_void_p(Context))
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGrabber_SetFrameListener(Grabber, Listener, Context = 0):
|
||
err_code = _sdk.CameraGrabber_SetFrameListener(c_void_p(Grabber), Listener, c_void_p(Context))
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGrabber_SetRawCallback(Grabber, Callback, Context = 0):
|
||
err_code = _sdk.CameraGrabber_SetRawCallback(c_void_p(Grabber), Callback, c_void_p(Context))
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGrabber_SetRGBCallback(Grabber, Callback, Context = 0):
|
||
err_code = _sdk.CameraGrabber_SetRGBCallback(c_void_p(Grabber), Callback, c_void_p(Context))
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraGrabber_GetCameraHandle(Grabber):
|
||
hCamera = c_int()
|
||
err_code = _sdk.CameraGrabber_GetCameraHandle(c_void_p(Grabber), byref(hCamera))
|
||
SetLastError(err_code)
|
||
return hCamera.value
|
||
|
||
def CameraGrabber_GetStat(Grabber):
|
||
stat = tSdkGrabberStat()
|
||
err_code = _sdk.CameraGrabber_GetStat(c_void_p(Grabber), byref(stat))
|
||
SetLastError(err_code)
|
||
return stat
|
||
|
||
def CameraGrabber_GetCameraDevInfo(Grabber):
|
||
DevInfo = tSdkCameraDevInfo()
|
||
err_code = _sdk.CameraGrabber_GetCameraDevInfo(c_void_p(Grabber), byref(DevInfo))
|
||
SetLastError(err_code)
|
||
return DevInfo
|
||
|
||
# CameraImage
|
||
|
||
def CameraImage_Create(pFrameBuffer, pFrameHead, bCopy):
|
||
Image = c_void_p()
|
||
err_code = _sdk.CameraImage_Create(byref(Image), c_void_p(pFrameBuffer), byref(pFrameHead), bCopy)
|
||
SetLastError(err_code)
|
||
return Image.value
|
||
|
||
def CameraImage_CreateEmpty():
|
||
Image = c_void_p()
|
||
err_code = _sdk.CameraImage_CreateEmpty(byref(Image))
|
||
SetLastError(err_code)
|
||
return Image.value
|
||
|
||
def CameraImage_Destroy(Image):
|
||
err_code = _sdk.CameraImage_Destroy(c_void_p(Image))
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraImage_GetData(Image):
|
||
DataBuffer = c_void_p()
|
||
HeadPtr = c_void_p()
|
||
err_code = _sdk.CameraImage_GetData(c_void_p(Image), byref(DataBuffer), byref(HeadPtr))
|
||
SetLastError(err_code)
|
||
if err_code == 0:
|
||
return (DataBuffer.value, tSdkFrameHead.from_address(HeadPtr.value) )
|
||
else:
|
||
return (0, None)
|
||
|
||
def CameraImage_GetUserData(Image):
|
||
UserData = c_void_p()
|
||
err_code = _sdk.CameraImage_GetUserData(c_void_p(Image), byref(UserData))
|
||
SetLastError(err_code)
|
||
return UserData.value
|
||
|
||
def CameraImage_SetUserData(Image, UserData):
|
||
err_code = _sdk.CameraImage_SetUserData(c_void_p(Image), c_void_p(UserData))
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraImage_IsEmpty(Image):
|
||
IsEmpty = c_int()
|
||
err_code = _sdk.CameraImage_IsEmpty(c_void_p(Image), byref(IsEmpty))
|
||
SetLastError(err_code)
|
||
return IsEmpty.value
|
||
|
||
def CameraImage_Draw(Image, hWnd, Algorithm):
|
||
err_code = _sdk.CameraImage_Draw(c_void_p(Image), c_void_p(hWnd), Algorithm)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraImage_DrawFit(Image, hWnd, Algorithm):
|
||
err_code = _sdk.CameraImage_DrawFit(c_void_p(Image), c_void_p(hWnd), Algorithm)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraImage_DrawToDC(Image, hDC, Algorithm, xDst, yDst, cxDst, cyDst):
|
||
err_code = _sdk.CameraImage_DrawToDC(c_void_p(Image), c_void_p(hDC), Algorithm, xDst, yDst, cxDst, cyDst)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraImage_DrawToDCFit(Image, hDC, Algorithm, xDst, yDst, cxDst, cyDst):
|
||
err_code = _sdk.CameraImage_DrawToDCFit(c_void_p(Image), c_void_p(hDC), Algorithm, xDst, yDst, cxDst, cyDst)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraImage_BitBlt(Image, hWnd, xDst, yDst, cxDst, cyDst, xSrc, ySrc):
|
||
err_code = _sdk.CameraImage_BitBlt(c_void_p(Image), c_void_p(hWnd), xDst, yDst, cxDst, cyDst, xSrc, ySrc)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraImage_BitBltToDC(Image, hDC, xDst, yDst, cxDst, cyDst, xSrc, ySrc):
|
||
err_code = _sdk.CameraImage_BitBltToDC(c_void_p(Image), c_void_p(hDC), xDst, yDst, cxDst, cyDst, xSrc, ySrc)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraImage_SaveAsBmp(Image, FileName):
|
||
err_code = _sdk.CameraImage_SaveAsBmp(c_void_p(Image), _str_to_string_buffer(FileName))
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraImage_SaveAsJpeg(Image, FileName, Quality):
|
||
err_code = _sdk.CameraImage_SaveAsJpeg(c_void_p(Image), _str_to_string_buffer(FileName), Quality)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraImage_SaveAsPng(Image, FileName):
|
||
err_code = _sdk.CameraImage_SaveAsPng(c_void_p(Image), _str_to_string_buffer(FileName))
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraImage_SaveAsRaw(Image, FileName, Format):
|
||
err_code = _sdk.CameraImage_SaveAsRaw(c_void_p(Image), _str_to_string_buffer(FileName), Format)
|
||
SetLastError(err_code)
|
||
return err_code
|
||
|
||
def CameraImage_IPicture(Image):
|
||
NewPic = c_void_p()
|
||
err_code = _sdk.CameraImage_IPicture(c_void_p(Image), byref(NewPic))
|
||
SetLastError(err_code)
|
||
return NewPic.value
|