ieucap.bas

来自「ID(IE) SDK V4.7 ID/IE工业相机驱动程序开发包」· BAS 代码 · 共 198 行

BAS
198
字号
Attribute VB_Name = "Module2"
'*
' *-----------------------------------------------------------------------------
' *       Name               IEUCap.bas
' *       Purpose            Declarations of functions in library IEUCap
' *       Development Kit    Microsoft Win32 SDK Visual basic 6.00
' *       Author             ShanHe
' *       Date               2007/07/3
' *       CopyRight          (c) 2006,  
' *
' *       Description        IEUCap函数库函数声明
' *
' *-----------------------------------------------------------------------------
' *

Option Explicit

'------------------------------------------------------------------------------------------------------------------------------------------
'设备操作函数

'*函数说明:获得默认设备(即连接到计算机的第一台设备)的设备句柄。
'*输入参数:无
'*输出参数:无。
'*返 回 值:操作成功则返回有效的设备句柄,否则返为NULL。
Declare Function IEU_GetDevice Lib "IEUCap.dll" () As Long

'*函数说明:获得指定设备编号的设备句柄。连接到计算机的第一台设备编号为1,第二台设备编号为2,以此类推
'*输入参数:
'*          lDevIndex:设备编号
'*输出参数:无。
'*返 回 值:操作成功则返回有效的设备句柄,否则返为NULL。
Declare Function IEU_GetIndexedDevice Lib "IEUCap.dll" (ByVal lDevIndex As Long) As Long

'*函数说明:释放创建的设备,与IEU_GetIndexedDevice或IEU_GetDevice对应。
'*输入参数:
'*          hDev:设备句柄。
'*输出参数:无。
'*返 回 值:操作成功则返回FD_SUCCESSED,否则返为相应的错误代码。
Declare Function IEU_ReleaseDevice Lib "IEUCap.dll" (ByVal hDev As Long) As Long

'函数说明:初始化设备
'*输入参数:
'*          hDev:设备句柄
'*          lReserved:保留值,必须为1。
'*          szDataPath:初始化设备所需的初始化文件路径及文件名。若设为NULL则检测硬件是否已初始化,
'*          返回FD_SUCCESSED说明硬件已初始化,不需要初始化文件,否则必须再次调用此函数,并将szDataPath
'*          设置为有效的初始化文件文件名。
'*输出参数:无。
'*返 回 值:操作成功则返回FD_SUCCESSED,否则返为相应的错误码。
Declare Function IEU_Initialize Lib "IEUCap.dll" (ByVal hDev As Long, ByVal lReserved As Long, ByVal szDataPath As String) As Long

'* 函数介绍:检查设备接入的USB接口是否为USB2.0接口。
'* 输入参数:无
'* 输出参数:无
'* 返 回 值:返回TRUE表示计算机USB接口是2.0接口,否则不是。
Declare Function IEU_IsUsb20 Lib "IEUCap.dll" (ByVal hDev As Long) As Boolean

'*函数说明:复位设备。
'*输入参数:无
'*输出参数:无。
'*返 回 值:操作成功则返回FD_SUCCESSED,否则返为相应的错误码。
Declare Function IEU_ResetDevice Lib "IEUCap.dll" (ByVal hDev As Long) As Long

'---------------------------------------------------------------------------------------------------------------------------------------------
'获取相机信息的函数

'*函数说明:获得相机的信息。
'*输入参数:
'*          hDev:设备句柄
'*输出参数:
'*          HardwareInfo:描述相机信息的结构体,包括相机的类型标识号,设备ID号等,参见Hardware结构体定义。
'*返 回 值:操作成功则返回FD_SUCCESSED,否则返为相应的错误代码。
Declare Function IEU_GetHardwareInfo Lib "IEUCap.dll" (ByVal hDev As Long, ByRef HardwareInfo As Hardware) As Long

'*函数说明:获得分辨率信息。
'*输入参数:
'*          hDev:设备句柄
'*          Res:要获取信息的分辨率
'*输出参数:
'*          sz:分辨率信息,为此分辨率下的最大图像尺寸(以象素为单位),参见Size结构体定义
'*返 回 值:操作成功则返回FD_SUCCESSED,否则返为相应的错误代码
Declare Function IEU_GetResolutionInfo Lib "IEUCap.dll" (ByVal hDev As Long, ByVal Res As FD_RESOLUTION, ByRef sz As Size) As Long

'*函数说明:获得当前配置下的相机的各个参数信息。
'*输入参数:
'*          hDev:设备句柄
'*          CamParam:表征参数的常量
'*输出参数:
'*          ParamInfo:参数信息,包括为参数的调节范围及调节的精度,参见PARAM_INFO定义
'*返 回 值:操作成功则返回FD_SUCCESSED,否则返为相应的错误代码。
Declare Function IEU_GetParameterInfo Lib "IEUCap.dll" (ByVal hDev As Long, ByVal CamParam As CAM_PARAM, ByRef ParamInfo As PARAM_INFO) As Long

'*函数说明:获得相机采样的图像数据的Bayer样式。
'*输入参数:
'*          hDev:设备句柄
'*输出参数:
'*          Pattern:相机采样的Bayer样式,参见BAYER_PATTERN定义。
'*返 回 值:操作成功则返回FD_SUCCESSED,否则返为相应的错误代码。
Declare Function IEU_GetBayerPattern Lib "IEUCap.dll" (ByVal hDev As Long, ByRef Pattern As BAYER_PATTERN) As Long


'---------------------------------------------------------------------------------------------------------------------------------------
'图像数据获取函数:多线程方式

'*函数说明:设置消息处理窗口句柄,启动图像数据传输后,相机的工作状态(例如:取完一帧图像数据)会以消息的方式发送到此窗口。
'*输入参数:
'*           hDev:设备句柄
'*           hMsgHandle:消息处理窗口句柄
'*输出参数:无。
'*返 回 值:操作成功则返回FD_SUCCESSED,否则返为相应的错误码。
Declare Function IEU_SetMsgHandle Lib "IEUCap.dll" (ByVal hDev As Long, ByVal hMsgHandle As Long) As Long

'回调函数应声明为何种类型

'*函数说明:设置回调函数,启动图像数据传输后,每取完一帧图像数据后调用回调函数,用户可在函数中对图像数据做后继处理(如格式转换、显示等)。
'*输入参数:
'*           hDev:设备句柄
'*           pfnCallback:回调函数指针
'*           pTransInfo:回调函数参数指针,参见IEU_TRANS_INFO定义
'*输出参数:无。
'*返 回 值:操作成功则返回FD_SUCCESSED,否则返为相应的错误码。
Declare Function IEU_SetCallbackFunction Lib "IEUCap.dll" (ByVal hDev As Long, ByVal pfnCallback As Long, _
                                                            ByRef pTransInfo As IEU_TRANS_INFO) As Long

'*函数说明:创建传输线程,准备传输图像数据到主机。
'*输入参数:
'*           hDev:设备句柄
'*输出参数:无。
'*返 回 值:操作成功则返回FD_SUCCESSED,否则返为相应的错误码。
Declare Function IEU_StartImageTransfer Lib "IEUCap.dll" (ByVal hDev As Long) As Long


'*函数说明:启动一次图像传输任务,必须在IEU_StartImageTransfer后调用。图像传输任务可以定量的(指定传输的图像帧数)、限时的(指定传输时间)
'*          或是无限的(既不限时也不限量,直至取消或停止)。此函数设置好传输任务后马上返回,不等待传输任务完成,传输在底层线程中进行。如
'*          果设定了回调函数,每传输完一帧图像,底层线程会调用回调函数,并将当前传输的状态保存在IEU_TRANS_INFO结构体中的相应成员中,
'*          因此调用者可以在回调函数中查询状态并处理数据;或设定了消息处理窗口,传输状态(例如收到一帧图像数据、传输任务完成等)会以消息的
'*          方式发送到指定的窗口,调用者可以在消息处理函数中查询状态并处理数据。
'*输入参数:
'*           hDev:设备句柄
'*           pDataBuf:数据缓冲区地址
'*           lSize:数据缓冲区大小,设相机当前图像大小为nWidth * nHeight,则lSize必须大于或等于nWidth*nHeight*lFrames,
'*                  若lFrames为-1,lSize必须大于或等于nWidth*nHeight
'*           lFrames:要求传输到内存中的帧数,值小于等于0时没有帧数限制,缓冲区只用前nWidth*nHeight个字节,新的图像数据将会覆盖前一帧数据
'*           lMilliseconds:传输时间限制,以毫秒计,超过此时间则停止传输并通知用户超时,值小于等于0时没有时间限制
'*输出参数:无。
'*返 回 值:操作成功则返回FD_SUCCESSED,否则返为相应的错误码。
Declare Function IEU_GetImages Lib "IEUCap.dll" (ByVal hDev As Long, ByRef pDataBuf As Any, ByVal lSize As Long, _
                                                    ByVal lFrames As Long, ByVal lMilliseconds As Long) As Long

'*函数说明:取消由IEU_GetImages函数发起的、还未完成的传输任务。
'*输入参数:
'*           hDev:设备句柄
'*输出参数:无。
'*返 回 值:操作成功则返回FD_SUCCESSED,否则返为相应的错误码。
Declare Function IEU_CancelTransfer Lib "IEUCap.dll" (ByVal hDev As Long) As Long


'*函数说明:销毁传输线程,与IEU_StartImageTransfer对应。
'*输入参数:
'*           hDev:设备句柄
'*输出参数:无。
'*返 回 值:操作成功则返回FD_SUCCESSED,否则返为相应的错误码。
Declare Function IEU_StopImageTransfer Lib "IEUCap.dll" (ByVal hDev As Long) As Long


'-----------------------------------------------------------------------------------------------------------------------------------------
'图像数据获取函数:单线程方式

'*函数说明:获取一帧图像原始数据。若硬件处于忙状态,则立即返回失败。注意:相机获取并传送一帧图像到计算机的时间与图像大小、曝光时间成正比,
'*         函数接收完数据后才返回,可能会导致调用线程较长时间的阻塞。
'*输入参数:
'*          hDev:设备句柄
'*          pBuf:接收数据的缓冲区地址。
'*          lSize: 缓冲区大小,必须与图像大小匹配,否则函数调用失败或者获得数据不正确。例如:若图像
'*          宽为Width,高为Height,则缓冲区大小应为Width * Height个字节。
'*输出参数:无。
'*返 回 值:操作成功则返回FD_SUCCESSED,否则返回相应的错误码。
Declare Function IEU_GetImageRawData Lib "IEUCap.dll" (ByVal hDev As Long, ByRef pBuf As Any, ByVal lSize As Long) As Long


'*函数说明:获取一帧图像原始数据。可进行超时等待设置,如硬件处于忙状态,则再次查询硬件状态,直至等到硬件空闲取到数据(返回成功)
'*          或超过用户设定的等待时间(返回超时)才返回。注意:相机获取并传送一帧图像到计算机的时间与图像大小、曝光时间成正比,
'*          函数接收完数据后才返回,可能会导致调用线程较长时间的阻塞。
'*输入参数:
'*          hDev:设备句柄
'*          pBuf:接收数据的缓冲区地址。
'*          lSize: 缓冲区大小,必须与图像大小匹配,否则函数调用失败或者获得数据不正确。例如:若图像
'*          宽为Width,高为Height,则缓冲区大小应为Width * Height个字节。
'*          lMilliseconds:等待超时时间。参数为-1时,超时时间为无限长,函数只有在取到图像数据后才会返回,与IEU_GetImageRawData函数相同
'*输出参数:无。
'*返 回 值:操作成功则返回FD_SUCCESSED,否则返回相应的错误码。
Declare Function IEU_GetImageRawDataEx Lib "IEUCap.dll" (ByVal hDev As Long, ByRef pBuf As Any, _
                                                        ByVal lSize As Long, ByVal lMilliseconds As Long) As Long
                                                        
'----------------------------------------------------------------------------------------------------------------------------------------
'软件触发函数

'*函数说明:当前设备状态为软件触发时,给一个软件触发信号,相机接到信号后开始曝光,一帧图像曝光完毕后,停止曝光,等待下一个触发信号。

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?